我正在编写一个 Android 应用程序小部件,它每分钟都会使用当前数据进行更新。要更新它,我正在使用AlarmManager
仅在手机未睡着时才有效的方法:
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
alarmManager.setRepeating(AlarmManager.RTC, calendar.getTimeInMillis(), INTERVAL_SEC * 1000, createFrequentUpdateIntent(context));
但是,我面临以下挑战:当手机在很长一段时间后唤醒时,我希望用户立即看到数据已经过时,因为它已经好几个小时没有更新了。因此,如果很长时间没有更新,我想以某种方式将数据标记为过时。
我考虑过挂钩SCREEN_ON
事件,但显然这只能通过后台服务实现,强烈建议不要这样做(here和here)。
你对如何做到这一点有任何想法吗?
谢谢!