首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >每次我回到活动中,"runOnUIThread“都会递增地运行

每次我回到活动中,"runOnUIThread“都会递增地运行
EN

Stack Overflow用户
提问于 2016-04-23 17:58:14
回答 1查看 200关注 0票数 0

我有一个计时器,它运行在活动的OnCreate方法上,如下所示。当运行时,计时器将按其应有的方式递增。显示:

00:00,00:01,00:02等

代码语言:javascript
运行
复制
final Timer timer = new Timer();
        final TimerTask timerTask = new TimerTask(){
            @Override
            public void run() {
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
                        String timer = sdf.format(new Date(counter * 1000L));
                        timerText.setText(timer);
                        counter++;

                    }
                });
            }};
timer.schedule(timerTask, 0, 1000);

但是,当我重新查看活动时,计时器的间隔会增加。如果我第一次重温它,间隔就变成2。

00:00,00:02,00:04等

再一次重温它,使间隔3,即

00:00,00:03,00:06等

每隔一段时间都在增加。我推断runOnUIThread方法正在运行n次数,其中n是访问onCreate的次数,但我真的不知道该怎么做。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-23 18:18:50

使用指定它为守护进程new Timer(true)的计时器构造函数,以便如果它退出,计时器线程也会退出。例如,还可以考虑在退出取消onPause之前使用定时器。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36814419

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档