调用 cancel() 后重新启动计时器

发布于 2024-12-15 01:04:16 字数 718 浏览 3 评论 0原文

我需要在 onResume() 上重新启动计时器,因为在 onPause() 上我调用 timer.cancel()。我该怎么做?

这是我启动计时器的代码:

 handler = new Handler();
        t = new Timer();
        t.scheduleAtFixedRate(new TimerTask() {
            @Override
            public void run() {

                runOnUiThread(new Runnable() {
                    public void run() {
                        doReload2();
                        populate();


                    }
                });

            }

        }, 300, 30000);

在这里我取消计时器:

@Override
protected void onPause() {
    super.onPause();
    System.out.println("onPause!!!!!!");
    t.cancel();
}

I need to restart a timer on onResume() because on onPause() I call timer.cancel(). How can I do this?

Here is the code where I start the timer :

 handler = new Handler();
        t = new Timer();
        t.scheduleAtFixedRate(new TimerTask() {
            @Override
            public void run() {

                runOnUiThread(new Runnable() {
                    public void run() {
                        doReload2();
                        populate();


                    }
                });

            }

        }, 300, 30000);

and here I cancel the timer :

@Override
protected void onPause() {
    super.onPause();
    System.out.println("onPause!!!!!!");
    t.cancel();
}

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

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

发布评论

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

评论(1

无人问我粥可暖 2024-12-22 01:04:16

尝试这样:

Timer t;

@Override
void onCreate(){
    t = Timer();
} 

@Override
void onResume(){
    super.onResume();
    t.scheduleAtFixedRate(new TimerTask() {
        @Override
        public void run() {
            runOnUiThread(new Runnable() {
                public void run() {
                    doReload2();
                    populate();
                }
            });
        }
    }, 300, 30000);
}

@Override
void onPause(){
    super.onPause();
    System.out.println("onPause!!!!!!");
    t.cancel();
}

Try like this:

Timer t;

@Override
void onCreate(){
    t = Timer();
} 

@Override
void onResume(){
    super.onResume();
    t.scheduleAtFixedRate(new TimerTask() {
        @Override
        public void run() {
            runOnUiThread(new Runnable() {
                public void run() {
                    doReload2();
                    populate();
                }
            });
        }
    }, 300, 30000);
}

@Override
void onPause(){
    super.onPause();
    System.out.println("onPause!!!!!!");
    t.cancel();
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文