0

我在我的应用程序中使用与 AlarmManager 结合的 BroadcastReceiver 来定期获取用户的通知。为此,我必须调用我的服务的 Rest API。我的问题更多是关于良好实践而不是技术,我担心电池和网络使用(通过蜂窝网络)。那么,如果用户将刷新周期设置为 5 秒,这对他的电池来说会是一个巨大的问题,遵循这种模式(通过 BrodcastReceiver 每 5 秒调用一次 Rest),还是有更好的方法来做到这一点?注意:我已经在我的 AlarmManager 上使用 setInexactRepeating instated of setRepeating。

谢谢阅读。

4

1 回答 1

0

那么,如果用户将刷新周期设置为5s,这对他的电池来说会是一个巨大的问题吗?

是的。另一方面,如果用户要求,只要用户知道功耗,那是用户的选择。我会默认使用频率低得多的东西,比如每小时一次。

注意:我已经在我的 AlarmManager 上使用 setInexactRepeating instated of setRepeating。

setInexactRepeating()仅当您选择库存值之一(例如INTERVAL_FIFTEEN_MINUTES)或在 API 级别 19+ 上运行时,才会产生“不精确”效果。如果你想利用这种“不精确”的特性来节省电力,你应该只允许用户选择其中一个INTERVAL_*值。

此外,根据“用户通知”是什么,考虑使用 GCM 将它们下推,而不是使用频繁轮询。

于 2014-05-02T22:57:43.723 回答