在 Android 的 IntentService 中等待异步回调
2022-09-01 14:19:49
我有一个在另一个类中启动异步任务,然后应该等待结果。IntentService
问题是,一旦方法完成运行,就会完成,对吧?IntentService
onHandleIntent(...)
这意味着,通常,在启动异步任务后,将立即关闭,并且将不再在那里接收结果。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(...)
但它绝对不是干净的解决方案。也许这甚至有一些严重的问题。
有没有更好的解决方案?