如何在onHandleIntent()执行完毕后不结束Android IntentService?

3

我启动了一个IntentService。在onHandleIntent()方法中,我使用一个处理程序(Handler)发起了一个HTTP请求,并在请求完成时调用它,代码如下:

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

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

如何处理类似于此的回调Handler结构以及ServiceIntent是最佳方式?


doStuff() 函数声明在哪里?这个处理程序似乎有些不对劲。你是不是想要像 new Handler() { int doStuff() { ... }} 这样的东西? - TotoroTotoro
抱歉,doStuff()并不存在。它只是一个占位符,表示那里的代码永远不会被执行。 - Andrew C
你能发布实际的代码吗?从这个片段中不清楚如何指定回调函数。谢谢! - TotoroTotoro
1个回答

4
很不幸,您不能使用 IntentService。它的作用是将同步工作排队并在另一个线程中完成,然后结束。您需要创建自己的服务。您可以查看 IntentService源代码并从那里开始。最重要的是,您需要在回调完成后而不是在 onHandleIntent 后调用 stopSelf

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接