我正在使用处理程序在RecyclerView
列表项中显示计时器。当我压回托管Activity
的{{1}}时,RecyclerView
仍在后台运行。处理程序是在Handler()
中创建和启动的。有什么方法可以从ViewHolder
本身的处理程序中删除回调?
我的ViewHolder示例代码
ViewHolder
答案 0 :(得分:0)
据我所知,RecyclerView
与活动分离时,适配器上没有方法被调用。
尝试在BaseActivity
或Application
类中创建计时器对象或对象列表,然后按onBack后运行将停止该计时器或多个计时器的方法。
//Declare timer
CountDownTimer cTimer = null;
//start timer function
void startTimer() {
cTimer = new CountDownTimer(30000, 1000) {
public void onTick(long millisUntilFinished) {
}
public void onFinish() {
}
};
cTimer.start();
}
//cancel timer
void cancelTimer() {
if(cTimer!=null)
cTimer.cancel();
}
答案 1 :(得分:0)
您可以在活动的 onDestory()上完成
handler.removeCallbacksAndMessages(null);
删除obj为令牌的回调和已发送消息的所有未决帖子。如果token为null,则将删除所有回调和消息。