在服务中启动可取消的后台任务

时间:2015-04-03 06:07:48

标签: java android multithreading timer handler

我想开始一个后台任务,可能是Handler内的AsynctaskIntentService。但我也需要它cancellable

在这个后台任务中我想启动一个计时器,然后说30秒后我想执行一个服务器调用。但是如果用户按下DialogFragment中的按钮,我还希望能够取消服务器调用。

首发Post Delayed Handler会实现这一目标吗?如果是,我该如何从我的Handler访问所述Activity

1 个答案:

答案 0 :(得分:0)

首先看看here
正如您将要阅读的那样,您无法停止在IntentService中运行的任务。



我建议使用处理程序来代替服务。比方说,你有按钮A 按钮B 。单击按钮A 30秒后应用程序运行任务,但同时如果按下按钮B,则不会启动服务。
当按下按钮A时,您可以向处理程序发送延迟消息(延迟30秒),如果按下按钮b,则可以将局部变量设置为false,当处理程序最终重现此消息时,您可以检查变量查看是否运行服务