检查SharedPreferences每一分钟都是个好主意

时间:2016-02-19 12:39:55

标签: android

我有一个每分钟调用一次BroadcastReceiver的AlarmManager。它没有任何问题,工作正常。 BroadcastReceiver查找SharedPreferences文件中存在的值。它每分钟检查大约4个值。 我只是想知道这是否会对系统产生影响。它最终会使设备变慢吗?

PS - 我不能再减少价值了。这会与我目前的设计相冲突。 先感谢您。

PPS - 非常感谢关于SharedPreference的时间和速度的简要理论。

1 个答案:

答案 0 :(得分:1)

好吧,我不知道AlarmManager是否会快速耗尽你的电池,但我建议你做的是删除代码中的AlarmManager部分,然后使用Handler代替。 / p>

来自AlarmManager

  

注意:警报管理器适用于您希望在特定时间运行应用程序代码的情况,即使您的应用程序当前未运行也是如此。对于正常的计时操作(刻度,超时等),使用Handler更容易,效率更高。

要求精确计时:

  

setRepeating for< API19

     

setExact API 19<

     

注意:只有对确切时间交付有强烈需求的警报(例如在请求的时间响铃的闹钟)才应安排准确。强烈建议不要使用确切的警报,因为他们减少操作系统最小化电池使用的能力。

这些都非常耗电。

所以你必须选择:

  

setInexactRepeating for< API 19

     

注意:安排具有不准确触发时间要求的重复警报;例如,每小时重复一次的警报,但不一定在每小时的顶部重复。由于系统可以调整警报,因此这些警报比传统上由setRepeating(int,long,long,PendingIntent)提供的严格重复更强高效。交付时间导致它们同时发射,避免将设备从睡眠中唤醒超过必要的时间。

但对于必须每分钟执行一次的警报,这不是很精确。

所以,你可能最适合Handler

{{1}}

希望这能回答你的问题。如果有任何不正确或应该改进的地方,请随时编辑/添加,或在下面发表评论。

相关问题