活动完成时如何破坏处理程序方法?

发布于 2025-01-17 20:45:28 字数 374 浏览 0 评论 0原文

在此活动结束时,Handler 方法中的计时器将继续运行。 如何使 Handler 方法在 Activity 完成时被销毁?

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

At the end of this activity, the timer from the Handler method continues.
How to make the Handler method be destroyed when the activity finishes?

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

独夜无伴 2025-01-24 20:45:29

就我而言,如果我离开 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;
    }

这样,只有当您的活动 处于活动状态

In my case I did not "destroy" the method if I leave the Activity, but the method does something only when Activity is active

Something like this :

// 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);

and set the value of active in the onStart / onStop methods :

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

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

this way the code inside handler.postdelay will be executed only when your Activity is active

你的背包 2025-01-24 20:45:29

您可以使用ondestory();生命周期方法。此方法在活动完成时和在此活动生命周期方法中进行调用,然后停止处理程序

@Override 
protected void onDestroy() {

Handler handler = new Handler();

handler.postDelayed(new Runnable());

super.onDestroy();

}```

you can you use onDestory(); lifecycle method.this method calls when an activity going to finish and in this activity lifecycle method you and stop the handler like this

@Override 
protected void onDestroy() {

Handler handler = new Handler();

handler.postDelayed(new Runnable());

super.onDestroy();

}```
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文