计时器在我的服务中运行两次

时间:2016-05-20 07:57:43

标签: android service timer

我在我的申请中使用服务。它是一个发射器应用程序。我在我的服务中使用了计时器,其池化频率为1分钟。我的应用程序在正常情况下工作正常。但是当我重新启动手机时,我的计时器会在一分钟内运行两次,例如:

11:00:15,11:00:23,11:01:15,11:01:23,11:02:15,11:02:23 .......

请帮助我们这里的人是我的服务代码:

if (mTimer != null) {
            mTimer.cancel();
            mTimer = new Timer();
           // mTimer.schedule(new TimeDisplayTimerTask(), file_saving_time, file_saving_time);
           mTimer.schedule(new TimeDisplayTimerTask(), file_saving_time, file_saving_time);

        } else {
            // recreate new
            mTimer = new Timer();
            mTimer.schedule(new TimeDisplayTimerTask(), file_saving_time, file_saving_time);
        }

我从活动类的onCreate()开始我的服务并从onDestroy()方法中销毁它。

1 个答案:

答案 0 :(得分:0)

尝试此操作时,请在制作新实例之前取消Timer

这里每次创建TimeDisplayTimerTask()对象,所以在

之前取消它
public class MyTimer extends TimerTask
    {
        @Override
        public void run() {

                }
    }

if (mTimer != null) {
       try{
      mTimer.cancel();
}
catch(Exception ee){}
try{
     mytimer.cancel();
}catch(Exception ee){}


            mTimer = new Timer();
            mytimer=new MyTimer();
            mTimer.schedule(mytimer, file_saving_time, file_saving_time);


        } else {
            // recreate new
mytimer=new MyTimer();
            mTimer = new Timer();
            mTimer.schedule(mytimer, file_saving_time, file_saving_time);
        }