Ich habe eine Liste mit Elementen, in jedem Element kann der Benutzer eine Benachrichtigung für sie festlegen, und öffnen Sie es dann aus der Benachrichtigung. Es funktioniert gut, aber ich kann nur eine Benachrichtigung einstellen, es spielt keine Rolle, ob es von demselben oder einem anderen Element stammt. Wenn ich mehr als eins einstelle, wird nur das letzte angezeigt. Ich weiß nicht, was ich noch tun kann. Hier ist mein CodeSo legen Sie mehrere Benachrichtigungen mit AlarmManager in Android fest
innerhalb der Artikeldetail Klasse
Long alertTime = new GregorianCalendar().getTimeInMillis() + 7 * 1000;
Intent alertIntent = new Intent(getApplicationContext(), AlertReceiver.class);
alertIntent.putExtra(DataBaseManager.CN_ID_APLICACION, idAplicacion);
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP, alertTime, PendingIntent.getBroadcast(getApplicationContext(), 1, alertIntent,
PendingIntent.FLAG_UPDATE_CURRENT));
der Empfänger:
public class AlertReceiver extends BroadcastReceiver {
int idAplicacion;
@Override
public void onReceive(Context context, Intent intent) {
idAplicacion = intent.getIntExtra(DataBaseManager.CN_ID_APLICACION, idAplicacion);
Log.e("TESTING", "the id is " + String.valueOf(idAplicacion));
createNotification(context, "some title", "some message text", "some sticker");
}
public void createNotification(Context context, String title, String msgText, String sticker)
{
Intent i = new Intent(context, DetalleAplicacionActivity.class);
i.putExtra(DataBaseManager.CN_ID_APLICACION, idAplicacion);
PendingIntent notificIntent = PendingIntent.getActivity(context,0, i ,PendingIntent.FLAG_CANCEL_CURRENT);
NotificationCompat.Builder mBuilder = new
NotificationCompat.Builder(context)
.setContentTitle(title)
.setContentText(msgText)
.setTicker(sticker)
.setSmallIcon(R.drawable.ic_launcher)
.setLargeIcon(BitmapFactory.decodeResource(context.getResources(), R.drawable.ic_launcher));
mBuilder.setContentIntent(notificIntent);
mBuilder.setDefaults(NotificationCompat.DEFAULT_VIBRATE);
mBuilder.setAutoCancel(true);
NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.notify(NotificationID.getID(), mBuilder.build());
}
}
und public class NotificationID {
private final static AtomicInteger c = new AtomicInteger(0);
public static int getID() {
return c.incrementAndGet();
}
}
manifestieren
<uses-permissionandroid:name="com.android.alarm.permission.SET_ALARM"/>
<receiver android:name=".Clases.AlertReceiver"/>
Sie müssen die Schaffung eine andere 'requestCode' für jeden Alarm verwenden, finden Sie hier: http://stackoverflow.com/questions/12785702/android-set-multiple- Alarme –
Danke! Du hast Recht :) – MaxFraire