我有一个具有服务和主要活动的应用程序。该服务运行一个倒数计时器,并将一个偶数发送给接收事件的活动以绘制/刷新屏幕中的倒数计时器。很简单的。现在我正在调查电池使用率,这是非常高的

我打算将计时器时间从200毫秒减少到800毫秒,将可运行的服务线程从500减少到800毫秒。我怀疑这必须节省电池。

但是有几个问题:


我的主要问题:屏幕锁定时(我有部分唤醒锁定),Android是否会继续更新屏幕?如果是这样,我可以尝试在屏幕关闭时不发送刷新信息(如何检测屏幕是否锁定?)。您认为这有帮助吗?
您是否了解编程或应用程序设计中的最佳实践以节省电池电量?我一直在寻找有关它的网站,但没有发现任何有趣的东西。
数据库开了废电池吗?


谢谢

最佳答案

1:您可以使用Alarmmanager执行更新。 (在这里查看:android appwidgets


  注意:如果在更新时设备处于睡眠状态(由updatePeriodMillis定义),则设备将唤醒以执行更新。如果每小时更新不超过一次,则可能不会对电池寿命造成重大问题。但是,如果您需要更频繁地更新和/或在设备处于睡眠状态时不需要更新,则可以根据不会唤醒设备的警报来执行更新。为此,请使用AlarmManager使用您的AppWidgetProvider接收到的Intent设置警报。将警报类型设置为ELAPSED_REALTIME或RTC,它们仅在设备苏醒时才会发出警报。然后将updatePeriodMillis设置为零(“ 0”)。


这对于小部件和“正常”活动应该可用。

2:我不知道正式文件。但是您应该问自己以下问题:是否需要经常更新?如果活动距离5小时,您是否需要每秒或每分钟更新一次GUI?您可以级联更新:事件越接近,更新就越频繁。

3:我认为不是。

07-26 00:40