Android 服务内的计时器
Timer inside Android service
我有一个 Android 服务可以启动一个定时器来做一些事情:
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
timer.scheduleAtFixedRate(new VeryImportantTask(), 0, RATE);
return START_STICKY;
}
我知道服务是单例的,但是每次我调用 startService()
时是否调用 onStartCommand
方法?如果是这样,我应该控制我的计时器是第一次启动,不是吗?我在考虑服务中的静态布尔标志。有没有更好的方法?
在你的情况下,即 START_STICKY 你可以简单地检查意图值 nullity
像这样
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
if(null==intent){
// service restarted do what you want
}
return START_STICKY;
}
因为第一次意图不会 null 并且每次null 以防重新启动 [=12] =].
我有一个 Android 服务可以启动一个定时器来做一些事情:
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
timer.scheduleAtFixedRate(new VeryImportantTask(), 0, RATE);
return START_STICKY;
}
我知道服务是单例的,但是每次我调用 startService()
时是否调用 onStartCommand
方法?如果是这样,我应该控制我的计时器是第一次启动,不是吗?我在考虑服务中的静态布尔标志。有没有更好的方法?
在你的情况下,即 START_STICKY 你可以简单地检查意图值 nullity
像这样
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
if(null==intent){
// service restarted do what you want
}
return START_STICKY;
}
因为第一次意图不会 null 并且每次null 以防重新启动 [=12] =].