我有一项服务,应该每小时开始一次。我正在测试注3。 由于这是Android KitKat,我将代码更改为:
AlarmManager am = (AlarmManager) this.getSystemService(ALARM_SERVICE);
int valueOfHour = 3600000;
long time = System.currentTimeMillis()+ (valueOfHour - (System.currentTimeMillis() % valueOfHour))+ 300000;
Log.i("Calculated Time:", time + " " + System.currentTimeMillis());
if(android.os.Build.VERSION.SDK_INT >=android.os.Build.VERSION_CODES.KITKAT){
am.cancel(pintent);
am.setExact(AlarmManager.RTC_WAKEUP, time, pintent);
}
我的问题是,服务是在XX:05(就像我想要的那样)开始的,现在也是XX:34。我只是不知道为什么。计算的时间总是正确的。
上面的代码位于onBind()方法中。