我正在尝试停止 Timer 或 TimerTask,但该方法不会破坏任务......
首先是我如何设置timertask的代码:
scanTask = new TimerTask() {
public void run() {
handler.post(new Runnable() {
public void run() {
load_unread();
Log.d("TIMER", "Timer set off");
}
});
}};
t=新计时器();t.schedule(scanTask, 300, 10000);
现在我正试图在 onDestroy 上“杀死”这个任务:
@Override
protected void onDestroy() {
super.onDestroy();
scanTask.cancel();
t.cancel();
t.purge();
handler.removeCallbacksAndMessages(null);
System.out.println("Chat destroyed");
}
但这不起作用?你能帮我找到解决办法吗?
谢谢!
编辑:我终于找到了答案。不知道为什么我的没有工作...
这里是每个有相同问题的人的代码。无论如何,我认为这是一个更好,更有效的解决方案:
private Handler handler = new Handler();
runnable.run();
private Runnable runnable = new Runnable()
{
public void run()
{
//
// Do the stuff
//
handler.postDelayed(this, 1000);
}
};
并停止:
handler.removeCallbacks(runnable);
取自这里: