1
下午好。多个本地通知android
我想在我的应用程序的多个本地通知,所以我有
在我的活动,这种方法应该设置警报,以17:20,17:21,17:22,但我只有一个17:22通知。
public void multiplyAlerts(){
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
Intent intent = new Intent(this, LocalNotification.class);
for(int i = 0; i < 3; i++){
Calendar t_calendar = Calendar.getInstance();
t_calendar.set(Calendar.MONTH, Calendar.DECEMBER);
t_calendar.set(Calendar.YEAR, 2013);
t_calendar.set(Calendar.DAY_OF_MONTH, 12);
t_calendar.set(Calendar.HOUR_OF_DAY, 17);
t_calendar.set(Calendar.MINUTE, 20 + i);
t_calendar.set(Calendar.SECOND, 23);
t_calendar.set(Calendar.AM_PM, Calendar.PM);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, PendingIntent.FLAG_ONE_SHOT);
alarmManager.set(AlarmManager.RTC_WAKEUP, t_calendar.getTimeInMillis(),pendingIntent);
System.out.println("Calling Alarm " + i);
}}
本地通知类
public class LocalNotification extends BroadcastReceiver {
NotificationManager nm;
@Override
public void onReceive(Context context, Intent intent) {
nm = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
CharSequence from = "Remsmed";
CharSequence message = "Принимать что-то";
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, new Intent(), 0);
Notification notif = new Notification(R.drawable.launcher,"Notification text", System.currentTimeMillis());
notif.setLatestEventInfo(context, from, message, pendingIntent);
notif.flags = Notification.FLAG_AUTO_CANCEL;
nm.notify((int)System.currentTimeMillis(),notif);
System.out.println("id = " + System.currentTimeMillis());
}}
我添加此字符串来体现
<receiver android:name="ru.fors.remsmed.utils.LocalNotification"></receiver>
感谢您的答案!
(INT)System.currentTimeMillis的(是确定为ID? – Valeriy
是的,你可以使用它。 –
您也可以通过一次只设置一个通知来避免这种情况。当你的17:20报警被触发时,设置你的17:21报警等。更容易取消报警,因为一次只有一个报警被激活。 – Kuffs