我在我的申请中使用服务。它是一个发射器应用程序。我在我的服务中使用了计时器,其池化频率为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()方法中销毁它。
答案 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);
}