0

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

但这对我来说不是很好,因为我有 2 个要求,这两个要求有点相互冲突:

  • 经常运行(<5 分钟)
  • 不要使用过多的电池和其他资源

那么 - 是否有可能像智能更新一样?我的意思是例如算法,如:

a)设备解锁时每 1 分钟更新一次屏幕(=用户正在用手机做某事) b)但在设备睡眠时不更新(它没用,因为用户看不到更新结果)?

或者至少像“每 5 分钟运行一次,但仅在工作日的上午 8:00 到晚上 8:00 运行”之类的?简单的智能服务调度...

4

1 回答 1

0

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

还有其他更有效的选择,例如AlarmManager.

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

一种智能算法会认识到您只需要在列表更改时更新应用程序小部件,而不是每分钟、每秒或每毫秒更新一次。

用于AlarmManager在列表中的第一项之后设置一分钟的闹钟。当您从警报事件中获得控制权时,更新应用程序小部件,然后使用AlarmManager在您的列表中的下一次之后设置一分钟的警报。当列表从其他来源(例如,UI、同步过程)发生变化时,还要更新您的应用小部件,如果这可能导致您需要更早的警报,请取消当前警报并使用AlarmManager.

于 2012-06-21T11:02:15.717 回答