在Recycler Adapter中获取onDestroy()活动

时间:2019-10-15 07:38:47

标签: java android kotlin android-recyclerview recycler-adapter

我正在使用处理程序在RecyclerView列表项中显示计时器。当我压回托管Activity的{​​{1}}时,RecyclerView仍在后台运行。处理程序是在Handler()中创建和启动的。有什么方法可以从ViewHolder本身的处理程序中删除回调?

我的ViewHolder示例代码

ViewHolder

2 个答案:

答案 0 :(得分:0)

据我所知,RecyclerView与活动分离时,适配器上没有方法被调用。

尝试在BaseActivityApplication类中创建计时器对象或对象列表,然后按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,则将删除所有回调和消息。