智能小部件更新(不定期更新)

时间:2012-06-21 09:50:15

标签: android service android-service

嗯,我有一个有趣的问题。我有一个小部件,比如提醒,它在屏幕上显示了几个最近的项目。每个项目的时间,当它到来。我只需要显示未来的项目,而不是通过项目。因为定期更新至少每30分钟一次,所以对我来说还不够(我的项目有11.54,12.07等等)。所以我只有一个选项=安排服务,可以在我想要的任何时间间隔内更新屏幕(例如每5分钟一次)。

但这对我来说不是很好,因为我有2个要求,它们有点拼在一起:

  • 经常跑步(<5分钟)
  • 不要使用太多的电池和其他资源

那么 - 智能更新有可能吗?我的意思是例如算法:

a)设备解锁时每1分钟更新一次屏幕(=用户正在用手机做某事) b)但是当设备处于休眠状态时不更新(无用,因为用户无法看到更新结果)?

或者至少是“每隔5分钟运行一次,但工作日内仅从早上8点到晚上8点”?简单的智能服务调度...

1 个答案:

答案 0 :(得分:0)

  

所以我只有一个选项=安排服务,可以在我想要的任何时间间隔内更新屏幕(例如每5分钟一次)。

还有其他更高效的选项,例如AlarmManager

  

是否有可能像智能更新?我的意思是例如算法

智能算法会识别出这样一个事实:您只需要在列表更改时更新应用小部件,而不是每分钟,秒或毫秒。

使用AlarmManager将警报设置为超过列表中第一项的一分钟。当您从警报事件中获得控制权时,请更新应用程序窗口小部件,然后使用AlarmManager在列表上下一次设置警报一分钟。当列表从其他来源(例如,UI,同步过程)更改时,还会更新您的应用小部件,如果这可能导致您需要更早的警报,请取消当前警报并使用AlarmManager安排新警报。 / p>