我正在创建一个基于提醒的应用程序。当用户随时创建提醒时它工作正常。但如果他同时创建了两个警报(我没有考虑到秒),那就说早上9:30 。第二个警报正确启动,但第一个警报在一分钟后即9:31发出。
这就是我创建闹钟的方式:alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),60000, contentIntent);
在那里我给出的重复时间是60000毫秒,这就是它在1分钟后出现的原因。
但是我希望同时触发两个警报。我已尝试使用剩余的3个“AlarmManager”类方法,但没有任何效果。有任何建议可以实现这一点。
这是我的创建闹钟方法:
public void createAlarm(Context context,int id,String title,String date1,String voiceMsgUrl, String description, String owner,String type, String repFrequency)
{
eventIntent=new Intent(context, MyReceiver.class);
eventIntent.putExtra("notifyId", id+"");
eventIntent.putExtra("title",title);
eventIntent.putExtra("date", date1);
eventIntent.putExtra("voiceMsgUrl", voiceMsgUrl);
eventIntent.putExtra("description", description);
eventIntent.putExtra("owner", owner);
eventIntent.putExtra("repFrequency", repFrequency);
contentIntent=PendingIntent.getBroadcast(context, id, eventIntent, PendingIntent.FLAG_UPDATE_CURRENT);
calendar=Calendar.getInstance();
SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try{
date=format.parse(date1);
calendar.setTime(date);
}catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(calendar.getTimeInMillis()>System.currentTimeMillis()){
AppzoyDebug.e("creating alarm at time", calendar.getTimeInMillis()+" lll");
alarmManager=(AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
//alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),3000, contentIntent);
alarmManager.setExact(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), contentIntent);
}
}
我将值传递给该方法,如下所示
alarm.createAlarm(ReminderActivity.this, id, title.getText().toString(), dueDate.getText().toString(), url, description.getText().toString(), ownerNameString, "REM",repFrequency);
答案 0 :(得分:1)
使用2种不同的报警管理器。 1个报警管理器一次设置1个报警。因此,如果您想同时设置多个警报,请为每个警报设置不同的警报管理器。
答案 1 :(得分:-1)
使用AlarmManager.ELAPSED_REALTIME_WAKEUP
代替AlarmManager.RTC_WAKEUP
并进行检查。