Ich muss mehrere Benachrichtigungen zu mehreren Zeiten erstellen. Der Zeitpunkt, zu dem die Benachrichtigung angezeigt werden soll, wird in die Ereignis-ID abgerufen, usw. Die Zeit für die Benachrichtigung wird in einer anderen Klasse festgelegt. Was mit dem unten stehenden Code passiert, ist, dass für eine Benachrichtigung, die beispielsweise auf 10:00 Uhr festgelegt wurde, alle Benachrichtigungen, die nach 10:00 Uhr festgelegt wurden, gleichzeitig angezeigt werden. Bitte helfen Sie. Nur die richtige Benachrichtigung muss angezeigt werden. Nicht die zukünftigen.mehrere Benachrichtigungen zu verschiedenen Zeiten einstellen - Android
for(int j=0;j<event_id.size();j++)
{
if(Integer.parseInt(event_id.get(j).toString())>newEventID&&Long.parseLong(event_time.get(j).toString())>System.currentTimeMillis())
{
AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);//alarm manager
NotificationManager notificationManager=(NotificationManager)getSystemService(NOTIFICATION_SERVICE);
Notification note=new Notification(R.drawable.friendi_main_logo, event_desc.get(j).toString(), System.currentTimeMillis());
Intent mainScreenIntent=new Intent(getApplicationContext(),MainScreenActivity.class);
mainScreenIntent.putExtra("UserID", user_id);
int uniqueCode=0;
uniqueCode= Integer.parseInt(event_id.get(j).toString());//unique code for each pending intent
//separate pending intent for each alarm.. one alarm manager can invoke only one PI
PendingIntent ListOfNotification=PendingIntent.getActivity(getApplicationContext(), uniqueCode,mainScreenIntent,0);
note.flags=Notification.FLAG_AUTO_CANCEL;
alarmManager.set(AlarmManager.RTC_WAKEUP, Long.valueOf(event_time.get(j).toString()), ListOfNotification);//invokes pending intent @ the event_time
note.setLatestEventInfo(getApplicationContext(), "Event: "+event_title.get(j).toString(), event_group.get(j).toString()+": "+event_desc.get(j).toString(),ListOfNotification);
// Uri path=Uri.parse("android.resource://" + getPackageName() + "/alarm_sms.mp3");
// note.sound=path;
note.defaults=Notification.DEFAULT_ALL;
notificationManager.notify(EVENT_NOTIFY_ID, note);
EVENT_NOTIFY_ID++;
flag=true;
}
}
Ich denke, das verursacht das Problem; 'event_time.get (j) .toString())> System.currentTimeMillis()'. – Chromium
@Chromium: aber ich kann das nicht entfernen, weil das, wenn ich diese Bedingung entferne, die alle vorher eingestellten Benachrichtigungen auch kommen. Ich will das nicht. – Sherlock
Ich meine nicht, Sie entfernen das. Anstatt nach mehr als zu suchen, können Sie nicht nach Gleichheit suchen? – Chromium