Android:剩余的调度事件

时间:2012-11-26 21:39:12

标签: android timer calendar timertask

为了实现提醒,我需要设置一个备忘录,如:“从今天开始,每个星期五都有一个备忘录,一个星期是,一个没有” 所以,我想我可以确定每个备忘录,我必须展示它的下一个日期。然后将此日期传递给这样的计时器:

 Timer timer = new Timer();

 timer.schedule(new TimerTask() {

                public void run() {
                    //show my memo    
                     });

                }}, date); // 

现在假设是星期一26/11/2012如何判断星期五的发生时间(根据上述备忘录?

我不确定这种机制是否足够好,如果有人能建议我另一个approch,我将不胜感激。

1 个答案:

答案 0 :(得分:3)

计时器不适合用于此类。您应该查看AlarmManager并使用它来安排您的事件。

您可以使用AlarmManager.set()设置特定警报,AlarmManager.setInexactRepeating()设置重复警报,在精确度方面具有一定的灵活性,setRepeating()设置精确的重复警报。

在所有情况下,您都会设置一个PendingIntent,它会在警报触发时启动,并且您的应用程序应该准备好正确处理该意图。

请记住,当PendingIntent被触发时,您不一定需要采取行动:您可以检查条件是否正确(例如,您可以添加一些逻辑,以确定是否应该通知用户点)。

有关AlarmManager和PendingIntent的更多信息:

http://developer.android.com/reference/android/app/AlarmManager.html

http://developer.android.com/reference/android/app/PendingIntent.html

另外,请记住,您必须在“启动序列已完成”事件中添加广播接收器,以便在设备重新启动后重新启动警报,因为警报不会在重新启动后持续存在。