如何在Android中停止线程?

时间:2012-01-06 10:33:48

标签: android

我有一个每30分钟执行一次函数的线程,所以我使用了一个处理程序和runnable线程的组合(比如postdelayed,removemessages)。那时候我找不到任何方法来阻止线程。我试过手写。 Removemessages()和hander.removeCallbacks(Runnable)但无法帮助..

4 个答案:

答案 0 :(得分:3)

我建议您使用TimerTask代替Thread。在这里你可以取消&重新启动TimerTask

答案 1 :(得分:1)

我建议你使用alarmmanager。 timertask存在问题。 有时,启动时间任务的服务可能会被破坏。如果服务没有运行,timertask也会变为禁用状态。当设备处于空闲状态时,它经常发生。因此,最好的解决方案是使用alarmmanager,无论您的设备是否处于空闲状态,它都会每30分钟触发一次警报。您只需在首次启动应用程序时启动警报,并在重启设备时需要重新启动警报。您可以使用广播接收器在设备重新启动时收到消息。

答案 2 :(得分:0)

要在java中停止线程,您需要调用thread.interrupt();方法。

答案 3 :(得分:0)

timer = new Timer();
    timer.schedule(new TimerTask() {

        @Override
        public void run() {
                                         if(your condition to stop thread)
                                         {
                                            timer.cancel();
                                          }else
                                         {
                                             \\ your code
                                          }
                                      }
            }, 0, 1800000);

在里面使用计时器....它将解决你的问题