繁体   English   中英

如何在Android中停止Thread?

[英]How to stop Thread in Android?

我有一个线程每30分钟执行一次函数,因此我使用了处理程序和可运行线程的组合(例如postdelayed,removemessages)。当时我找不到任何方法来停止线程。 Removemessages()和hander.removeCallbacks(Runnable),但无济于事。

我建议您使用TimerTask而不是Thread 在这里您可以取消并重新启动TimerTask

我建议您使用Alarmmanager。 timertask有问题。 有时启动计时器任务的服务可能会被破坏。 如果服务未运行,timertask也将被禁用。 设备处于空闲状态时,经常发生这种情况。 因此,最好的解决方案是使用alarmmanager,该设备每30分钟触发一次警报,无论您的设备是否处于空闲状态。 仅在首次启动应用程序时才需要启动警报,并且在设备重启后需要重新启动。 重启设备后,您可以使用广播接收器获取消息。

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

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

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

在内部使用计时器...。它将解决您的问题

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM