AlarmManager不会占用多个Android队列

时间:2011-05-27 20:33:05

标签: java android alarmmanager

我最近才开始搞乱报警管理器,我想出了大部分内容,但是现在它开始有点烦人了。所以,现在我设置了一个日期和时间选择器,你输入日期和时间,它会在那个时间到来时弹出一个祝酒消息,但它似乎只需要一个警报和任何其他警报我设置被摧毁。这是报警管理器自己做的事情,还是我缺少的东西。这是我的主要类的代码,另一个是带有Toast消息的广播接收器,所以我不会发布它。

public class TextScheduler extends ListActivity {
protected Toast mToast; 
TimePicker time;
DatePicker date;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    Button button = (Button) findViewById(R.id.button1);
    button.setOnClickListener(setTime);
    time = (TimePicker) this.findViewById(R.id.timePicker1);
    date = (DatePicker) this.findViewById(R.id.datePicker1);
}
private OnClickListener setTime = new OnClickListener() {
    public void onClick(View v) {
        Calendar cal = Calendar.getInstance();
        cal.set(date.getYear(), date.getMonth(), date.getDayOfMonth(), time.getCurrentHour(), time.getCurrentMinute());

        Intent intent = new Intent(TextScheduler.this, AReceiver.class);
        intent.putExtra("caldata", "hooray!!");
        PendingIntent sender = PendingIntent.getBroadcast(TextScheduler.this, 1234567, intent, 0);

        AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);
        am.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), sender);
    }
};
    }

如果您需要更多信息,请提前告知我们!

WWaldo

1 个答案:

答案 0 :(得分:1)

AlarmManager比较PendingIntent以查看它是否已存在。只需更改ID(在您的情况下为1234567),它就可以创建其他警报:每个ID一个。