Ich habe eine Aktivität mit dem Namen A
, die von einem broadcast receiver
starten. Die Aktivität A
hat eine Benachrichtigung ausgelöst, aber sie verschwindet automatisch, wenn die Aktivität zerstört wird (Ende). Aber ich möchte diese Benachrichtigung beibehalten, bis der Benutzer auf die Benachrichtigung klickt oder manuell löscht.Benachrichtigung verschwinden nach Abschluss der Aktivität
Wie Aktivität Start von Rundfunkempfänger
Intent i = new Intent(context,A.class);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT);
i.putExtras(intent.getExtras());
context.startActivity(i);
Mitteilung
Intent notificationIntent = new Intent();
notificationIntent.setClass(context,B.class);
notificationIntent.setAction(Intent.ACTION_MAIN);
notificationIntent.addCategory(Intent.CATEGORY_LAUNCHER);
notificationIntent.setFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, notificationIntent, 0);
Notification notification = new NotificationCompat.Builder(context)
.setSmallIcon(R.drawable.notification_small)
.setContentTitle(status)
.setTicker(status)
.setAutoCancel(false)
.setContentText(message)
.setDefaults(Notification.DEFAULT_SOUND)
.setLargeIcon(
Bitmap.createScaledBitmap(icon, 128, 128, false))
.setContentIntent(pendingIntent)
.build();
manifestieren Optionen
<activity android:name="com.example.activity.A"
android:screenOrientation="portrait"
android:launchMode="singleTask"
android:taskAffinity=""
android:excludeFromRecents="true"/>
Hinweis: Ich habe versucht SingleInstance auch, aber kein Glück.
Edit (Fixed)
machte ich einen dummen Fehler. Ich habe clearAll() aufgerufen, anstatt eine bestimmte Benachrichtigung in der Funktion onDestroy() abzubrechen.
Kündigen Sie die Benachrichtigung irgendwo mit mNotificationManager.cancel (NOTIFICATION_ID) ;? – Fahim
Ich habe erwähnt, dass in meinem Kommentar, dass Sie die Benachrichtigung löschen – Fahim