Android服务中的计时器

时间:2016-07-08 11:55:30

标签: android timer android-service

我有一个启动计时器的Android服务:

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    timer.scheduleAtFixedRate(new VeryImportantTask(), 0, RATE);
    return START_STICKY;
}

我知道服务是单身,但每次调用onStartCommand时都会调用startService()方法吗?如果是这样,我应该控制我的计时器刚刚第一次启动,不应该吗?我正在考虑服务中的静态布尔标志。还有更好的方法吗?

1 个答案:

答案 0 :(得分:3)

在您的情况下,即 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 ,并且在START_STICKY重新启动的情况下每次