App的后台服务似乎要睡觉了

net*_*ein 6 service android

我有一个Service列出联系人更改的实例:

Application.getContentResolver().registerContentObserver(ContactsContract.Contacts.CONTENT_URI, true, mContactsObserver);
Run Code Online (Sandbox Code Playgroud)

这是在onStartCommand和未注册的onDestroy

Service与生活在Application实例上的Manager通信.


考虑到这个设置,我有一个奇怪的错误:

  1. 我打开应用程序一切正常

  2. 我将应用程序发送到后台并将其删除,服务重新启动,一切正常

  3. 但是当我将应用程序发送到后台时,有时日志会停止,应用程序似乎冻结...我没有收到任何联系人更改通知,也没有收到任何其他内容,但应用程序也没有被杀死.我有一个ScheduleThreadPool不会触发其在此期间的任务.

每当我再次打开应用程序时,所有恢复都正常.并且日志显示服务未重新创建它仍在运行.

由于某些电池节电政策,这是预期的行为吗?

Importante note:这是在搭载Android 4.4.2的三星GT-I9515上发生的,因此Doze不是罪魁祸首.