【Android】切换fragment再切换回去因为定时器Task already scheduled or cancelled而闪退该怎么办?

头像
Posh
    36
    广西桂林市叠彩区
    新手上路,请多包涵

    fragment中在omstart使用定时器,在onstop中摧毁定时器

        @Override
        public void onStart() {
            super.onStart();
            timer.schedule(task,0,10000);
        }
    
        @Override
        public void onStop() {
            super.onStop();
            timer.cancel();
        }

    但是从另一个fragment返回该fragment后软件闪退,报错“Task already scheduled or cancelled”
    在onstart中新new一个Timer()也不行。
    写的形式如下:

        @Override
        public void onStart() {
            super.onStart();
            timer = new Timer();
            timer.schedule(task,0,10000);
        }

    求解。

    阅读 2.3k
    1 个回答

    TimerTask 只能由 Timer 调度一次
    你要重新New 的是task 而不是timer

    撰写回答
    你尚未登录,登录后可以
    • 和开发者交流问题的细节
    • 关注并接收问题和回答的更新提醒
    • 参与内容的编辑和改进,让解决方法与时俱进
    推荐问题