我正在开发一款通过WiFi连接到特殊设备的应用程序。我需要在短时间内进行状态更新,或者保持应用程序中特殊设备的状态最新。FCM不是一个选项。我的想法是给用户两个选项:使用前台服务进行快速更新,或者使用定期更新机制进行“慢速”更新以节省电池电量。
我的问题与第二个选项有关。间隔应该大约为五分钟。因此,使用JobScheduler不可行。但即使使用AlarmManager似乎也不是一个选择,因为我无法在维护窗口期间获得网络访问权。
我考虑使用WakefulBroadcastReceiver通过AlarmManager接收Intent,需要WakeLock,并通过调用startForeground()将我的长时间运行的服务转换为前台。但似乎只要设备处于doze模式下,startForeground()方法对Service没有影响。
我阅读了很多关于doze和服务的页面,但不知道如何解决我的问题...有人有想法吗?
我的问题与第二个选项有关。间隔应该大约为五分钟。因此,使用JobScheduler不可行。但即使使用AlarmManager似乎也不是一个选择,因为我无法在维护窗口期间获得网络访问权。
我考虑使用WakefulBroadcastReceiver通过AlarmManager接收Intent,需要WakeLock,并通过调用startForeground()将我的长时间运行的服务转换为前台。但似乎只要设备处于doze模式下,startForeground()方法对Service没有影响。
我阅读了很多关于doze和服务的页面,但不知道如何解决我的问题...有人有想法吗?