मैंने एक एप्लिकेशन बनाया है और एक घटना के साथ मैं एंड्रॉइड नोटिफिकेशन बार में अधिसूचना जोड़ने का प्रबंधन करता हूं। अब मुझे नमूना चाहिए कि किसी घटना पर सूचना पट्टी से उस अधिसूचना को कैसे हटाया जाए ??
मैंने एक एप्लिकेशन बनाया है और एक घटना के साथ मैं एंड्रॉइड नोटिफिकेशन बार में अधिसूचना जोड़ने का प्रबंधन करता हूं। अब मुझे नमूना चाहिए कि किसी घटना पर सूचना पट्टी से उस अधिसूचना को कैसे हटाया जाए ??
जवाबों:
यह काफी सरल है। आपको कॉल करना होगा cancel
या cancelAll
अपने NotificationManager पर। रद्द करने की विधि का पैरामीटर अधिसूचना की आईडी है जिसे रद्द किया जाना चाहिए।
एपीआई देखें: http://developer.android.com/reference/android/app/NotificationManager.html#cancar(
आप इस त्वरित कोड को आज़मा सकते हैं
public static void cancelNotification(Context ctx, int notifyId) {
String ns = Context.NOTIFICATION_SERVICE;
NotificationManager nMgr = (NotificationManager) ctx.getSystemService(ns);
nMgr.cancel(notifyId);
}
आप cancelAll
अधिसूचना प्रबंधक पर भी कॉल कर सकते हैं , इसलिए आपको अधिसूचना आईडी के बारे में चिंता करने की आवश्यकता नहीं है।
NotificationManager notifManager= (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
notifManager.cancelAll();
संपादित करें: मुझे नीचा दिखाया गया था इसलिए शायद मुझे यह निर्दिष्ट करना चाहिए कि यह केवल आपके आवेदन से अधिसूचना को हटा देगा।
startForeground(NOTIFICATION_ID, mNotification);
बस सेटआटोकेनसेल (ट्रू) को निम्न कोड की तरह सेट करें:
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());`
ये सहायता करेगा:
NotificationManager mNotificationManager = (NotificationManager)
getSystemService(NOTIFICATION_SERVICE);
mNotificationManager.cancelAll();
इस एप्लिकेशन द्वारा किए गए सभी सूचनाओं को हटा देना चाहिए
और यदि आप कॉल करके एक सूचना बनाते हैं
startForeground();
Service.you के अंदर आपको कॉल करना पड़ सकता है
stopForeground(false);
पहले, फिर अधिसूचना रद्द करें।
यदि आप उस सेवा से अधिसूचना जनरेट कर रहे हैं जिसका उपयोग अग्रभूमि में शुरू किया गया है
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);
दूसरा तरीका म्यूजिक प्लेयर नोटिफिकेशन में ज्यादा पसंद करते हैं क्योंकि थाय तरीका न केवल नोटिफिकेशन रिमूव होता है बल्कि प्लेयर भी हटा दें ... !!
stopForeground(true); manager.cancelAll();
यह मेरे लिए क्या हल है!
कृपया यह प्रयास करें,
public void removeNotification(Context context, int notificationId) {
NotificationManager nMgr = (NotificationManager) context.getApplicationContext()
.getSystemService(Context.NOTIFICATION_SERVICE);
nMgr.cancel(notificationId);
}
अपनी अधिसूचना को रद्द करने के लिए NotificationManager का उपयोग करें। आपको केवल अपनी अधिसूचना आईडी प्रदान करनी होगी
mNotificationManager.cancel (YOUR_NOTIFICATION_ID);
इस लिंक को भी देखें डेवलपर लिंक देखें
NotificationManager.cancel(id)
सही उत्तर है। फिर भी आप पूरे अधिसूचना चैनल को हटाकर Android Oreo और बाद में सूचनाओं को हटा सकते हैं। इसे हटाए गए चैनल के सभी संदेशों को हटा देना चाहिए।
यहाँ Android प्रलेखन से उदाहरण है :
NotificationManager mNotificationManager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
// The id of the channel.
String id = "my_channel_01";
mNotificationManager.deleteNotificationChannel(id);
Android API> = 23 पर आप सूचनाओं के समूह को हटाने के लिए कुछ इस तरह कर सकते हैं।
for (StatusBarNotification statusBarNotification : mNotificationManager.getActiveNotifications()) {
if (KEY_MESSAGE_GROUP.equals(statusBarNotification.getGroupKey())) {
mNotificationManager.cancel(statusBarNotification.getId());
}
}