如何从适配器删除处理程序

时间:2018-12-13 11:57:49

标签: java android android-fragments handler android-adapter

我在适配器中使用了一个函数,并且添加了一个Handler来每两秒刷新一次,如下所示:

 final Handler refreshHandler = new Handler();
 Runnable runnable = new Runnable() {
     @Override
     public void run() {
         refreshHandler.postDelayed(this, 2000);
         myfunction();
     }
 };
 refreshHandler.postDelayed(runnable, 2000);

当我不在部署适配器的片段中时,处理程序将始终重新加载。

所以我的问题是,每次退出片段时如何停止处理程序?

1 个答案:

答案 0 :(得分:1)

我认为您应该使用removeCallbacks(Runnable r)方法。

这就是将其放入代码中的方式:

      final Handler refreshHandler = new Handler();
 Runnable runnable = new Runnable() {
     @Override
     public void run() {
         refreshHandler.postDelayed(this, 2000);
         myfunction();
     }
 };
 refreshHandler.postDelayed(runnable, 2000);


@Override
public void onDestroy () {

    refreshHandler.removeCallback(runnable);
    super.onDestroy ();

}

类似的东西随处可见。希望你能理解