3

我启动了一个 IntentService。在 onHandleIntent() 中,我使用请求完成时调用的处理程序发出 HTTP 请求,如下所示:

public function onHandleIntent(){
    makeRequest("http://somehthing.com", new Handler(){
        doStuff();
    });
}

onHandleIntent() 在 HTTP 请求返回之前立即完成。请求确实返回了,但 ServiceIntent 线程已经被销毁并且 doStuff() 永远不会运行。

使用 ServiceIntent 处理这样的回调处理程序结构的最佳方法是什么?

4

1 回答 1

4

不幸的是,你没有。IntentService意味着将同步的工作块排入队列,在另一个线程中完成它们,然后完成。您必须创建自己的服务。您可以查看源代码IntentService并从那里开始。最重要的是,您需要stopSelf在回调完成后调用,而不是 after onHandleIntent

于 2011-09-14T00:58:10.063 回答