我只是开始服务的功能,并重复他:
mAlarmManager = (AlarmManager) mContext.getSystemService(Context.ALARM_SERVICE);
PendingIntent pIntent = PendingIntent.getService(mContext,
SendStatusService.SEND_STATUS_SERVICE_CODE,
mIntent,
PendingIntent.FLAG_UPDATE_CURRENT);
mAlarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP,
SystemClock.elapsedRealtime() + 2000,
mIntervalInMs,
pIntent);
我理解文档:警报管理器无论设备状态(睡眠与否)都会在2000毫秒内启动服务,并以间隔mIntervalInMs
重复。
但运行此代码后30-50秒后服务开始工作。我弄错了什么或者不理解文档?
答案 0 :(得分:1)
setRepeating()
"不精确"在API Level 19+ Android设备上运行时,targetSdkVersion
为19或更高。因此,您的结果并不令人惊讶。事件将发生在所需时间的某个地方(直到Android 6.0的Doze模式启动),但它们不会在所需的时间完全发生。