我有一个LocalTime列表,我需要循环抛出它们并分别返回小时和分钟以将它们添加到通知中
当我单独对待它们时,可以使用getHour()或getMinute()方法,但在列表中不起作用
String q = "01:00:00";
String w = "02:00:00";
String e = "03:00:00";
String r = "04:00:00";
LocalTime qq = LocalTime.parse(q);
LocalTime ww = LocalTime.parse(w);
LocalTime ee = LocalTime.parse(e);
LocalTime rr = LocalTime.parse(r);
List<LocalTime> listTimes = new ArrayList<>();
listTimes.add(qq);
listTimes.add(ww);
listTimes.add(ee);
listTimes.add(rr);
for(int i=0 ; i<=listTimes.size() ; i++) {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY,listTimes.get(i).getHour());
calendar.set(Calendar.MINUTE,listTimes.get(i).getMinute());
calendar.set(Calendar.SECOND,listTimes.get(i).getSecond());
Intent intent = new Intent(getapplicationContext(),Notification_reciever.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(getapplicationContext(),100,intent,PendingIntent.flaG_UPDATE_CURRENT);
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,calendar.getTimeInmillis(),AlarmManager.INTERVAL_DAY,pendingIntent);
}
通知的实际创建:
public void onReceive(Context context,Intent intent) {
Notificationmanager notificationmanager = (Notificationmanager) context.getSystemService(context.NOTIFICATION_SERVICE);
int notificationId = 1;
String channelId = "channel-01";
String channelName = "Channel Name";
int importance = Notificationmanager.IMPORTANCE_HIGH;
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
NotificationChannel mChannel = new NotificationChannel(
channelId,channelName,importance);
notificationmanager.createNotificationChannel(mChannel);
}
Intent repeating_intent = new Intent(context,Reaptingactivity.class);
repeating_intent.setflags(Intent.flaG_actIVITY_CLEAR_TOP);
PendingIntent pendingIntent = PendingIntent.getactivity(context,repeating_intent,PendingIntent.flaG_UPDATE_CURRENT);
NotificationCompat.Builder builder = new NotificationCompat.Builder(context,channelId).setContentIntent(pendingIntent).setSmallIcon(R.drawable.ic_free_breakfast_black_24dp)
.setContentTitle("Notificatio Title").setContentText("Notification message").setautoCancel(true);
notificationmanager.notify(notificationId,builder.build());
}
当我单独设置通知而不使用for循环时,通知没有问题,但是当我为列表添加循环时,通知不起作用