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