需求:
运行建立多个提醒,每个提醒设置一个时间,到达指定时间后跳出提醒窗体
每个提醒有一个执行按钮,点击后保存执行记录,并且当天不再触发提醒窗体
2个方案
A:
使用一个"前端服务"--StartFrontServer,在服务里每2分钟跑个任务,这个任务从数据库sqlite读取全部提醒,然后判断那个提醒需要激活,每次也只激活一个
被激活的提醒会更新LastNotifyTime=当前时间,并且在接下来的半个小时内部再触发(如果任务依然没有被执行),提醒窗体使用了AlarmAlertWakeLock来在有屏幕锁的情况下显示提醒窗体。
B:
考虑提醒是线性的并且每次只激活一个, 那么使用系统时钟AlarmManager,计算出下一时间点要执行的任务,
在每次CURD或者任务被触发需要重新计算下一个需要触发的任务, 如果出现2个任务并列的情况,那么就从中选一个,
每个任务触发后,有30分钟的不再触发。