我编写了一个处理程序,每个时间间隔调用该方法。我想在destroy()上删除该处理程序。我在Oncreate()中使用的代码如下

private final Handler _handler = new Handler();
public int DATA_INTERVAL = 30 * 1000;
Runnable getData;
 getData = new Runnable()
        {
            @Override
            public void run()
            {
                     recieveData();
            }
        };

 _handler.postDelayed(getData, DATA_INTERVAL);


在ondestroy()中,我使用了

_handler.removeCallbacks(getData);


但是removecallbacks不起作用。退出活动后调用。

最佳答案

removeCallbacks(Runnable r)


  删除消息队列中所有Runnable r的未决帖子。


因此removeCallbacks(..)仅停止当前未运行的可运行消息(Runnables),因此,如果要停止当前运行的Runable,则当用户从应用程序退出时,请使用布尔变量来停止线程。

见此帖子removeCallbacks not stopping runnable

关于android - 删除处理程序无法使用的回调,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11981899/

10-13 04:40