在特定时间推送通知

时间:2014-12-14 09:09:05

标签: android date notifications alarm taskmanager

我有一个作为任务管理器的应用程序..用户添加任务,应用程序在他输入时通知他/她。当我只添加一个任务时工作正常..但是当我添加两个任务时,第一个不通知,第二个通知第一个数据。 示例..我添加了第一个任务,标题为Task1,描述了Desc1 On 11:05,我添加了第二个任务,标题为Task2,描述了Desc2 On 11:07 .. On 11:05没有任何反应..但是在11:07我收到了Task1的标题和描述Desc1的通知。 我有一个Task的自定义类。

public class Task {

String name,desc;
Date date;
Context context;

public Task(String name, String desc, Date date, Context context) {
    this.name = name;
    this.desc = desc;
    this.date = date;
    this.context = context;

    startAlarm(date.getTime(), name, desc);
}

public String toString() {
    return name + " : " + desc + " at " + date;
}

public void startAlarm(long when, String title, String descreption) {
    AlarmManager alarmManager = (AlarmManager) context
            .getSystemService(MainActivity.ALARM_SERVICE);

    Intent intent = new Intent(context, BGService.class);
    intent.putExtra("title", title);
    intent.putExtra("descreption", descreption);

    PendingIntent pendIntent = PendingIntent.getService(context,
            0, intent, 0);
    alarmManager.set(AlarmManager.RTC, when, pendIntent);
}
//// Getters And Setters Here .... 

}

每当我创建新任务时都应该调用startAlarm方法。它会启动一个警报,该警报在通知时结束并显示通知。

但现在只显示最后一项任务..为什么? :S

谢谢:)

修改

我按照这个答案修正了它:

How to set more than one alarms at a time in android?

1 个答案:

答案 0 :(得分:2)

来自AlarmManager.set的Android文档:

  

...如果已经为同一个IntentSender安排了警报,那么之前的警报将首先被取消...

您似乎只能设置一个闹钟并需要为多个闹钟创建变通办法,例如设置每X调用一次的服务以设置下一个警报。