我在适配器中使用了一个函数,并且添加了一个Handler来每两秒刷新一次,如下所示:
final Handler refreshHandler = new Handler();
Runnable runnable = new Runnable() {
@Override
public void run() {
refreshHandler.postDelayed(this, 2000);
myfunction();
}
};
refreshHandler.postDelayed(runnable, 2000);
当我不在部署适配器的片段中时,处理程序将始终重新加载。
所以我的问题是,每次退出片段时如何停止处理程序?
答案 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 ();
}
类似的东西随处可见。希望你能理解