代码之家  ›  专栏  ›  技术社区  ›  Nezir

Android:从通知栏中删除通知

  •  147
  • Nezir  · 技术社区  · 14 年前

    我已经创建了一个应用程序,并通过一个事件在android通知栏中添加了通知。现在我需要一个示例如何从事件的通知栏中删除通知??

    11 回复  |  直到 12 年前
        1
  •  191
  •   Kushal    9 年前

    cancel cancelAll 在你的NotificationManager上。cancel方法的参数是应该取消的通知的ID。

    请参阅API: http://developer.android.com/reference/android/app/NotificationManager.html#cancel(int)

        2
  •  223
  •   DarkLeafyGreen    10 年前

    你可以试试这个快速代码

    public static void cancelNotification(Context ctx, int notifyId) {
        String ns = Context.NOTIFICATION_SERVICE;
        NotificationManager nMgr = (NotificationManager) ctx.getSystemService(ns);
        nMgr.cancel(notifyId);
    }
    
        3
  •  62
  •   Stephane Mathis    9 年前

    你也可以打电话 cancelAll 在通知管理器上,因此您甚至不必担心通知ID。

    NotificationManager notifManager= (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
    notifManager.cancelAll();
    

        4
  •  15
  •   Pablo    5 年前

    这将有助于:

    NotificationManager mNotificationManager = (NotificationManager)
                getSystemService(NOTIFICATION_SERVICE);
    mNotificationManager.cancelAll();
    

    如果您通过调用

    startForeground();
    

    内部服务。你呢可能得打电话

    stopForeground(false);
    

    首先,然后取消通知。

        5
  •  13
  •   Stephane Mathis    8 年前

    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());`
    
        6
  •  7
  •   Dhruv Raval    8 年前

    如果您正在生成 来自服务的通知 前景 使用

    startForeground(NOTIFICATION_ID, notificationBuilder.build());
    

    然后发布

    notificationManager.cancel(NOTIFICATION_ID);
    

    1>使用stopForeground(false)内部服务:

    stopForeground( false );
    notificationManager.cancel(NOTIFICATION_ID);
    

    2>通过调用活动销毁该服务类:

    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);
    

    音乐播放器通知 更多的原因是这样不仅通知删除,但删除球员也。。。!!

        7
  •  3
  •   GYaN user7305435    6 年前

    public void removeNotification(Context context, int notificationId) {      
        NotificationManager nMgr = (NotificationManager) context.getApplicationContext()
                .getSystemService(Context.NOTIFICATION_SERVICE);
        nMgr.cancel(notificationId);
    }
    
        8
  •  2
  •   Muhammad Usman Ghani    10 年前

    使用NotificationManager取消通知。你只需要提供你的通知id

    mNotificationManager.cancel取消(您的通知ID);

    同时检查此链接 See Developer Link

        9
  •  2
  •   gil.fernandes    6 年前

    NotificationManager.cancel(id) 安卓奥利奥 以及以后通过删除整个通知通道进行通知。这将删除已删除频道中的所有邮件。

    Android documentation :

    NotificationManager mNotificationManager =
            (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
    // The id of the channel.
    String id = "my_channel_01";
    mNotificationManager.deleteNotificationChannel(id);
    
        10
  •  2
  •   Xenolion ariochdivij666    4 年前

    NotificationManagerCompat.from(context).cancel(NOTIFICATION_ID)
    

    NotificationManagerCompat.from(context).cancelAll()
    

    为AndroidX或支持库制作。

        11
  •  1
  •   Szabolcs Becze    6 年前

      for (StatusBarNotification statusBarNotification : mNotificationManager.getActiveNotifications()) {
            if (KEY_MESSAGE_GROUP.equals(statusBarNotification.getGroupKey())) {
                mNotificationManager.cancel(statusBarNotification.getId());
            }
        }
    
        12
  •  0
  •   phnghue    6 年前

    只需呼叫ID:

    public void delNoti(int id) {((NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE)).cancel(id);}