0

我正在开发一个使用 AlarmManager 运行定期服务(每 15 分钟)的 Android 应用程序。

该服务通过互联网发送/接收数据。

我注意到何时启用 3G 并且手机处于空闲状态。它与互联网通信有困难。好像3G在需要的时候不会自动打开。

该服务在用户同时使用手机(和 3G)时效果很好,但在手机空闲时效果不佳。

有什么建议可以在需要时触发 3G 吗?

4

1 回答 1

0

不使用手机时,您需要获取并持有WakeLock 。否则手机将进入睡眠状态,不处理您的请求。

在 BroadcastReceiver 中创建唤醒锁很重要,它是从 AlarmManager 调用的。然后将 WakeLock 设置为静态引用并调用服务。然后服务将取消设置静态引用并继续保持 WakeLock 直到代码完成。

只是提示,您可能需要查看AlarmManager.setInexactRepeating以节省电量。它将类似的警报组合在一起,因此手机唤醒的次数更少。15分钟的间隔也很短。只需在该时间跨度内唤醒手机,就会消耗大量电池。至少一个小时是好的。

于 2012-02-23T05:43:14.903 回答