我已經創建了一個應用程序,並且有一個事件可以在android通知欄中添加通知。現在我需要示例如何從事件通知欄中刪除該通知?Android:從通知欄中刪除通知
回答
這很簡單。您必須在NotificationManager上撥打cancel
或cancelAll
。取消方法的參數是應該取消通知的ID。
見API:http://developer.android.com/reference/android/app/NotificationManager.html#cancel(int)
謝謝Roflcoptr :) 我在這裏找到它:http://stackoverflow.com/questions/2839727/remove-the-notification-icon-from-the-status-bar – Nezir 2010-08-29 15:09:12
private static final int MY_NOTIFICATION_ ID = 1234; String ns = Context.NOTIFICATION_SERVICE; NotificationManager mNotificationManager; mNotificationManager =(NotificationManager)getSystemService(ns); mNotificationManager.notify(MY_NOTIFICATION_ID,notification); 示例代碼不完整。這取決於你如何創建你的通知。只要確保您使用相同的ID來取消您在創建通知時使用的通知。 取消: mNotificationManager.cancel(MY_NOTIFICATION_ID); – Nezir 2010-08-29 15:19:05
你節省了一天!,很高興看到像你這樣的人,即使他們不是複雜問題的複雜答案,像你這樣的人在困難時期幫助我們很多。非常感謝你。 – 2016-04-30 23:50:33
你可以試試這個簡單的代碼
public static void cancelNotification(Context ctx, int notifyId) {
String ns = Context.NOTIFICATION_SERVICE;
NotificationManager nMgr = (NotificationManager) ctx.getSystemService(ns);
nMgr.cancel(notifyId);
}
這應該是正確的答案,因爲它很簡單,正確並直接適用於這一點。 – ZeroTek 2013-07-11 10:42:07
嗨,這是正確的答案。但通知托盤仍然可見。有什麼方法可以隱藏它嗎?例如,我有兩個與通知相關的操作:取消和完成。當我採取這些行動時,我將刪除通知。但是,這樣做只會刪除通知,但通知托盤保持可見狀態。 – 2014-11-14 21:26:14
使用NotificationManager取消通知。您只需提供您的通知ID
mNotificationManager.cancel(YOUR_NOTIFICATION_ID);
也檢查此鏈接 See Developer Link
您也可以撥打cancelAll
在通知管理器,所以你甚至不必擔心通知的ID。
NotificationManager notifManager= (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
notifManager.cancelAll();
編輯:我downvoted所以也許我應該指定,這隻會從您的應用程序中刪除通知。
只需設置setAutoCancel(真),如下面的代碼:
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());`
如果您是從在前景啓動的服務使用
startForeground(NOTIFICATION_ID, notificationBuilder.build());
產生通知再用髮卡
notificationManager.cancel(NOTIFICATION_ID);
無法取消通知&通知仍會出現在狀態欄中。在這種特殊情況下,您將通過2種方式解決這些:
1>使用stopForeground(假)內服務:
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);
第二種方式喜歡音樂播放器通知更因爲不僅通知刪除而且刪除p層也... !!
感謝您的回答!使用'stopForeground(true); manager.cancelAll();'是爲我解決了它! – Sky 2016-12-12 04:54:46
這將幫助:
NotificationManager mNotificationManager = (NotificationManager)
getSystemService(NOTIFICATION_SERVICE);
mNotificationManager.cannelAll();
,如果你通過調用
startForeground();
一個Service.you內創建一個通知可能需要調用
stopForeground(false);
先取消通知。
在Android API> = 23上,您可以這樣做來刪除一組通知。
for (StatusBarNotification statusBarNotification : mNotificationManager.getActiveNotifications()) {
if (KEY_MESSAGE_GROUP.equals(statusBarNotification.getGroupKey())) {
mNotificationManager.cancel(statusBarNotification.getId());
}
}
NotificationManager.cancel(id)
是正確的答案。但是您可以刪除Android Oreo及以後的通知,刪除整個通知頻道。這應該刪除已刪除通道中的所有消息。
下面是從Android documentation的例子:
NotificationManager mNotificationManager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
// The id of the channel.
String id = "my_channel_01";
mNotificationManager.deleteNotificationChannel(id);
- 1. 從android通知欄中刪除通知
- 2. 同時從列表視圖和通知欄中刪除通知
- 3. Android通知刪除
- 4. 如何在android中以編程方式從通知欄中刪除通知?
- 5. 從通知列表中刪除持久通知(通知API)
- 6. 清除通知欄Android
- 7. Android通知欄
- 8. 刪除通知欄中的所有通知
- 9. 從通知欄在Android的
- 10. parse.com - 從android上的狀態欄中刪除特定的通知
- 11. Android 4.2 GPS圖標不能從通知欄中刪除
- 12. 刪除通知
- 13. 刪除通知
- 14. 清除通知欄
- 15. 從其他應用程序中刪除通知欄中的通知
- 16. 通過點擊從通知中心刪除通知
- 17. 從通知欄獲取通知
- 18. 從通知中心清除通知
- 19. 以編程方式從通知中心刪除遠程通知
- 20. 如何從通知中刪除特定的推送通知Swift
- 21. 從通知抽屜中刪除所有通知
- 22. 從通知中心重新刪除通知
- 23. 從通知中心刪除單個通知iOS
- 24. iPhone:如何從通知中心刪除通知
- 25. OneSignal刪除通知
- 26. 刪除通知xamarin
- 27. 在PHP中刪除通知
- 28. 刪除Android手機中的頂部通知欄
- 29. 在Android應用中刪除通知欄陰影
- 30. 在Android應用程序中刪除通知欄
的[從狀態欄中的刪除通知圖標]可能重複(http://stackoverflow.com/questions/2839727/remove-the-notification- icon-from-the-status-bar) – rds 2013-02-21 15:10:18
代碼片段請參閱[刪除通知](http://androidtrainningcenter.blogspot.in/2013/04/removing-status-bar-notification-from.html) – Sameer 2013-04-21 07:06:47