如何在 activity 完成时销毁 Handler 方法?

How to make the Handler method be destroyed when the activity finishes?

在此 activity 结束时,Handler 方法中的计时器继续。 如何在 activity 完成时销毁 Handler 方法?

                 Handler handler = new Handler();
                    handler.postDelayed(new Runnable() {
                        public void run() {
                            mTextViewCountDown.setTextColor(Color.RED);
                        }
                    }, 55000);

在我的例子中,如果我离开 Activity,我没有“破坏”该方法,但该方法仅在 Activity 处于活动状态时才执行某些操作

像这样:

// Variable of your activity
private static boolean active = false;
Handler handler = new Handler();
                    handler.postDelayed(new Runnable() {
                        public void run() {
                            // do something only if Activity is active
                            if(active) {
                                mTextViewCountDown.setTextColor(Color.RED);
                            }
                        }
                    }, 55000);

并在 onStart / onStop 方法中设置 active 的值:

@Override
    public void onStart() {
        super.onStart();
        active = true;
    }

    @Override
    public void onStop() {
        super.onStop();
        active = false;
    }

这样 handler.postdelay 中的代码将仅在您的 Activity 处于活动状态时执行

你可以使用 onDestroy(); lifecycle method.this 方法在 activity 即将完成时调用,在这个 activity 生命周期方法中你会像这样停止处理程序

@Override 
protected void onDestroy() {

Handler handler = new Handler();

handler.postDelayed(new Runnable());

super.onDestroy();

}```