我的应用程序不断接收位置更新和活动识别更新,并不时将所有收集到的活动和位置记录分批发送到服务器。
我知道每次我执行网络操作时——WIFI 或手机的无线电状态(取决于当前的活动连接)都会进入活动状态,并在待机状态下保持一段时间——什么会显着影响电池的使用执行频繁的网络请求,因此我正在安排警报以执行与服务器的同步,以便在 2 小时内执行一次,或者在用户明确使用我的应用程序时执行。
另一方面,如果可能,我们希望以更短的时间间隔将收集到的数据与服务器同步。
我在想,如果我能知道无线电状态何时因任何原因变为活动状态(例如,当另一个应用程序执行网络操作时) - 这将是执行我的同步的好机会,以利用无线电无论如何打开的事实或在待机和消耗更多的电力。
我的问题:
- 是否可以按照我的描述检测到这种无线电状态?
- 如果是,那么如何?你认为这样做是个好主意吗?
我期待JobScheduler
android 5.0 中引入的新功能将在网络无线电处于活动状态时支持调度作业,但根据 API 似乎并非如此。我相信它会同时批处理所有需要网络的工作,但只有在设备上的所有应用程序都明智地使用它的理想世界中才会有好处。