为什么服务不起作用 "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 的打瞌睡模式启动),但它们不会准确地在所需时间发生。