我的程序是appWandget for android。 并且有2个计时器作为字段。
Timer usualTimer;
Timer unusualTimer;
在特殊的时间,我想运行不寻常的时间, 但是我不想和normalTimer一起同时运行它们,所以我有检查null的代码。
首先,我得到平常运行使用广播来感知appWidget已设置在屏幕上。
这是在我的广播课上。
//run appWidget is set
if(usualTimer == null){
usualTimer = new Timer();
motionTimerTask mtt = new motionTimerTask();
usualTimer.schedule(mtt, 0, 10000);
}
接下来,我得到了不寻常的游戏。 这也是同一个广播课。
//run when catch special Broadcast
if(usualTimer != null){
usualTimer.cancel();
usualTimer=null;
}
if(unusualTimer==null){
motionTimerTask mttU = new motionTimerTask();
usualTimer.schedule(mttU, 0, 10000);
}
现在,unusualTimer正在运行,normalTimer停止。
我的问题是,在这种情况下,当我重置这个appWidget时,normalTimer开始运行。 我不知道为什么(ordinaryTimer == null)是正确的,但是通常运行正在运行。
取消注册receivert这是服务中的代码。这是一个问题吗?
@Override
public void onDestroy(){
unregisterReceiver(receiver);
}
请告诉我如何解决。