在 Android 的 IntentService 中等待异步回调
2022-09-01 14:19:49
						我有一个在另一个类中启动异步任务,然后应该等待结果。IntentService
问题是,一旦方法完成运行,就会完成,对吧?IntentServiceonHandleIntent(...)
这意味着,通常,在启动异步任务后,将立即关闭,并且将不再在那里接收结果。IntentService
public class MyIntentService extends IntentService implements MyCallback {
    public MyIntentService() {
        super("MyIntentService");
    }
    @Override
    protected final void onHandleIntent(Intent intent) {
        MyOtherClass.runAsynchronousTask(this);
    }
}
public interface MyCallback {
    public void onReceiveResults(Object object);
}
public class MyOtherClass {
    public void runAsynchronousTask(MyCallback callback) {
        new Thread() {
            public void run() {
                // do some long-running work
                callback.onReceiveResults(...);
            }
        }.start();
    }
}
如何使上述代码段正常工作?我已经尝试过在启动任务后放入(任意持续时间)。它需要工作。Thread.sleep(15000)onHandleIntent(...)
但它绝对不是干净的解决方案。也许这甚至有一些严重的问题。
有没有更好的解决方案?