嗯,我有一个有趣的问题。我有一个小部件,比如提醒,它在屏幕上显示了几个最近的项目。每个项目的时间,当它到来。我只需要显示未来的项目,而不是通过项目。因为定期更新至少每30分钟一次,所以对我来说还不够(我的项目有11.54,12.07等等)。所以我只有一个选项=安排服务,可以在我想要的任何时间间隔内更新屏幕(例如每5分钟一次)。
但这对我来说不是很好,因为我有2个要求,它们有点拼在一起:
那么 - 智能更新有可能吗?我的意思是例如算法:
a)设备解锁时每1分钟更新一次屏幕(=用户正在用手机做某事) b)但是当设备处于休眠状态时不更新(无用,因为用户无法看到更新结果)?
或者至少是“每隔5分钟运行一次,但工作日内仅从早上8点到晚上8点”?简单的智能服务调度...
答案 0 :(得分:0)
所以我只有一个选项=安排服务,可以在我想要的任何时间间隔内更新屏幕(例如每5分钟一次)。
还有其他更高效的选项,例如AlarmManager
。
是否有可能像智能更新?我的意思是例如算法
智能算法会识别出这样一个事实:您只需要在列表更改时更新应用小部件,而不是每分钟,秒或毫秒。
使用AlarmManager
将警报设置为超过列表中第一项的一分钟。当您从警报事件中获得控制权时,请更新应用程序窗口小部件,然后使用AlarmManager
在列表上下一次设置警报一分钟。当列表从其他来源(例如,UI,同步过程)更改时,还会更新您的应用小部件,如果这可能导致您需要更早的警报,请取消当前警报并使用AlarmManager
安排新警报。 / p>