Bir uygulama oluşturdum ve bir olayla android bildirim çubuğuna bildirim eklemeyi başardım. Şimdi nasıl bir olay bildirim çubuğundan bu bildirimi kaldırmak için örnek gerekir ??
Bir uygulama oluşturdum ve bir olayla android bildirim çubuğuna bildirim eklemeyi başardım. Şimdi nasıl bir olay bildirim çubuğundan bu bildirimi kaldırmak için örnek gerekir ??
Yanıtlar:
Bu oldukça basit. NotificationManager'ınızı aramanız cancel
veya yapmanız gerekir cancelAll
. Cancel yönteminin parametresi, iptal edilmesi gereken bildirimin kimliğidir.
API'ya bakın: http://developer.android.com/reference/android/app/NotificationManager.html#cancel(int)
Bu hızlı kodu deneyebilirsiniz
public static void cancelNotification(Context ctx, int notifyId) {
String ns = Context.NOTIFICATION_SERVICE;
NotificationManager nMgr = (NotificationManager) ctx.getSystemService(ns);
nMgr.cancel(notifyId);
}
cancelAll
Bildirim yöneticisini de arayabilirsiniz , böylece bildirim kimlikleri hakkında endişelenmenize bile gerek kalmaz.
NotificationManager notifManager= (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
notifManager.cancelAll();
DÜZENLEME: Ben aşağı reddedildi bu yüzden belki de sadece bildirim uygulamanızdan kaldırılacağını belirtmeliyim.
startForeground(NOTIFICATION_ID, mNotification);
setAutoCancel (True) öğesini aşağıdaki kod gibi ayarlamanız yeterlidir:
Intent resultIntent = new Intent(GameLevelsActivity.this, NotificationReceiverActivityAdv.class);
PendingIntent resultPendingIntent =
PendingIntent.getActivity(
GameLevelsActivity.this,
0,
resultIntent,
PendingIntent.FLAG_UPDATE_CURRENT
);
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(
getApplicationContext()).setSmallIcon(R.drawable.icon)
.setContentTitle(adv_title)
.setContentText(adv_desc)
.setContentIntent(resultPendingIntent)
//HERE IS WHAT YOY NEED:
.setAutoCancel(true);
NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
manager.notify(547, mBuilder.build());`
Bu yardımcı olacak:
NotificationManager mNotificationManager = (NotificationManager)
getSystemService(NOTIFICATION_SERVICE);
mNotificationManager.cancelAll();
bunun uygulama tarafından yapılan tüm bildirimleri kaldırması gerekir
ve arayarak bir bildirim oluşturursanız
startForeground();
Bir Servisin içinde. aramak zorunda kalabilirsiniz
stopForeground(false);
önce bildirimi iptal edin.
Eğer üreten Eğer bir Hizmeti'nden Bildirim başlatılır ön planda kullanarak
startForeground(NOTIFICATION_ID, notificationBuilder.build());
Sonra
notificationManager.cancel(NOTIFICATION_ID);
durum çubuğunda Bildirim ve bildirim görünmeye devam ederse iptal çalışmıyor. Bu özel durumda, bunları 2 yolla çözeceksiniz:
1> hizmet içinde stopForeground (yanlış) kullanma:
stopForeground( false );
notificationManager.cancel(NOTIFICATION_ID);
2> Arama sınıfıyla bu hizmet sınıfını yok edin:
Intent i = new Intent(context, Service.class);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
if(ServiceCallingActivity.activity != null) {
ServiceCallingActivity.activity.finish();
}
context.stopService(i);
İkinci şekilde müzik çalar bildirimde tercih edin çünkü thay yolu sadece bildirim kaldırmaz, aynı zamanda oynatıcıyı da kaldırır ... !!
stopForeground(true); manager.cancelAll();
Bunu benim için çözen şey kullanmak !
Lütfen bunu deneyin,
public void removeNotification(Context context, int notificationId) {
NotificationManager nMgr = (NotificationManager) context.getApplicationContext()
.getSystemService(Context.NOTIFICATION_SERVICE);
nMgr.cancel(notificationId);
}
Bildiriminizi iptal etmek için NotificationManager'ı kullanın. Yalnızca bildirim kimliğinizi girmeniz gerekir
mNotificationManager.cancel (YOUR_NOTIFICATION_ID);
ayrıca bu bağlantıyı kontrol edin Geliştirici Bağlantısına Bakın
NotificationManager.cancel(id)
doğru cevaptır. Yine de , tüm bildirim kanalını silerek Android Oreo ve sonraki bildirimleri kaldırabilirsiniz . Bu, silinen kanaldaki tüm mesajları silmelidir.
İşte Android belgelerinden örnek :
NotificationManager mNotificationManager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
// The id of the channel.
String id = "my_channel_01";
mNotificationManager.deleteNotificationChannel(id);
Android API> = 23'de bir grup bildirimi kaldırmak için böyle bir şey yapabilirsiniz.
for (StatusBarNotification statusBarNotification : mNotificationManager.getActiveNotifications()) {
if (KEY_MESSAGE_GROUP.equals(statusBarNotification.getGroupKey())) {
mNotificationManager.cancel(statusBarNotification.getId());
}
}