3

我正在开发一个通过 wifi 连接到特殊设备的应用程序。我需要在短时间内进行状态更新,分别。使我的特殊设备在应用程序中的状态保持最新。FCM 不是一种选择。我的想法是给用户两个选择:使用前台服务的快速更新或使用定期更新机制的“慢”更新以节省电池。

我的问题是关于第二种选择。间隔应该在五分钟左右。JobScheduler因此无法使用。但即使使用AlarmManager似乎也不是一个选项,因为我无法在打瞌睡维护窗口期间获得网络访问权限。

我考虑过使用 aWakefulBroadcastReceiver来接收IntentAlarmManager要求 aWakeLock并通过调用将我的长期运行Service变成前台startForeground()。但似乎只要设备处于打盹模式,该startForeground()方法就没有效果。Service

我阅读了很多关于打瞌睡和服务的页面,但不知道如何解决我的问题......有人知道吗?

4

2 回答 2

2

你应该使用GcmTaskService。您可以为您的操作安排一些时间间隔,即使在打瞌睡模式下也能正常工作,通过链接查看更多信息

于 2017-03-15T17:08:57.177 回答
0

您可以使用 setAlarmClock,但不建议用于您的目的。相反,您可以使用 setExactAndAllowWhileIdle 手动重新编程,间隔为 15 分钟。最佳方式:GCM。

于 2017-03-15T17:12:50.523 回答