我只是启动服务的功能,并重复他:
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 秒后开始工作。我做错了什么或不理解文档?
在API 级别 19+ Android 设备上运行时,setRepeating()
"不精确",targetSdkVersion
为 19 或更高。因此,您的结果并不令人惊讶。这些事件将在所需时间左右发生(直到 Android 6.0 的打瞌睡模式启动(,但它们不会完全在所需时间发生。