Android:如何从MainActivity中停止IntentService中的Thread.sleep

时间:2015-05-05 07:19:11

标签: java android multithreading

我正在开发Android应用程序。我有一个MainActivity课程,我在其中发布IntentService

IntentService课程中,我使用方法Thread.sleep中的onHandleIntent来处理必要的pause

一切正常。

我想要做的是MainActivity UI中有一个按钮,可以中断Thread.sleep中的IntentService

这可能吗?谢谢。

2 个答案:

答案 0 :(得分:1)

不,这是不可能的。您无法从主UI线程处理非UI相关的线程。线程在执行时是一个独立的实体。如果您希望能够取消已在运行的任务,则应考虑使用AsyncTask并实施doInBackground()方法。此后,如果UI仍在执行,则可以从UI取消此任务。

答案 1 :(得分:0)

尝试考虑使用Service代替IntentService。第一个不会自动停止,这意味着它将监听您可以发送给它的命令(我会使用EventBus),除非它被系统销毁以回收资源。在你不需要它之后,你应该自己停止它。

无论如何,我最好实现start/pause功能来控制你的流量而不是依赖线程中断。