[英]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.