मुझे कुछ एप्लिकेशन लिखना होगा जो पृष्ठभूमि में कुछ काम करेगा। यह एप्लिकेशन ऑटोस्टार्ट से चलाया जाएगा और कोई भी प्रारंभिक गुई नहीं होगा। गुई को अधिसूचना पर क्लिक से कॉल किया जा सकता है जो ऑटोस्टार्ट के साथ दिखाया जाएगा। मुझे चिंता है कि, जब उपयोगकर्ता अधिसूचनाएं साफ़ करता है तो उसने इस गुई को कॉल करने का अवसर खो दिया। मेरा सवाल यह है कि उपयोगकर्ता द्वारा मेरी अधिसूचना को समाशोधन करने का कोई तरीका है?मेरे आवेदन के लिए समाशोधन अधिसूचना अक्षम करें
उत्तर
पर प्रभाव देना चाहिए, आप Foreground Service को कार्यान्वित करना चाहते हैं।
आप अधिसूचनाओं के "चल रहे" खंड में अधिसूचना बनाने के लिए देखना चाहते हैं। जब उपयोगकर्ता उन्हें साफ़ करता है तो ये अधिसूचनाएं साफ़ नहीं होती हैं।
Notification.FLAG_NO_CLEAR और Notification.FLAG_ONGOING_EVENT का उपयोग करें। इससे आपको
क्या वास्तव में दोनों का उपयोग करने का कोई कारण है? एंड्रॉइड 4.2.x पर, मैं केवल अधिसूचना का उपयोग कर रहा हूं। बिल्डर.सेटऑनगोइंग() और यह स्वयं ही अधिसूचना को मंजूरी से रोकने के लिए प्रतीत होता है। मैं उत्सुक था क्योंकि मैंने देखा कि अधिसूचना। बिल्डर के पास ऐसा कोई प्रतीत नहीं होता है जो FLAG_NO_CLEAR से मेल खाता हो। – spaaarky21
यहां एक अधिसूचना है जो उपयोगकर्ता को इसे साफ़ करने की अनुमति नहीं देगी।
Notification notification = new NotificationCompat.Builder(this)
.setTicker(r.getString(R.string.app_name))
.setSmallIcon(R.drawable.ic_launcher)
.setContentTitle(r.getString(R.string.app_name))
.setAutoCancel(false)
.setOngoing(true)
.build();
setOngoing(true)
कॉल acheives इस, और setAutoCancel(false)
दूर जा रहा है जब उपयोगकर्ता अधिसूचना टैप करता से अधिसूचना बंद हो जाता है।
यदि आवेदन बुला CancelAll रद्द या द्वारा की स्थापना रद्द या है अधिसूचना साफ कर दिया जाएगा: http://developer.android.com/reference/android/app/NotificationManager.html#cancel(int)
हालांकि @cja जवाब सही हो सकता है, हालांकि वह कोड में से कुछ कुछ लाइनें (अधिसूचना अभ्यस्त दिखाने या अभ्यस्त पर प्रदर्शित याद आ रही है आपकी अधिसूचना ट्रे)।
यह पूरा काम कर समारोह है:
public void createNotification() {
NotificationCompat.Builder notification = new NotificationCompat.Builder(this);
notification.setTicker("Ticker Text");
notification.setSmallIcon(R.drawable.ic_launcher);
notification.setContentTitle("Content Title");
notification.setContentText("Content Text");
notification.setAutoCancel(false);
notification.setOngoing(true);
notification.setNumber(++NotificationCount);
Intent intent = new Intent(this, MainActivity.class);
PendingIntent pIntent = PendingIntent.getActivity(this, 0, intent, 0);
notification.setContentIntent(pIntent);
notification.build();
NotificationManager nManger = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
nManger.notify(NotificationID, notification.build());
}
NotificationID पूर्णांक अपनी अधिसूचना की आईडी के रूप में काम कर रहा है।
आप इस का उपयोग करके इसे साफ कर सकते हैं:
public void clear() {
NotificationManager oldNoti = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
oldNoti.cancel(NotificationID);
}
सुनिश्चित करें कि notification.setAutoCancel(false);
झूठी तो यह जब स्पष्ट बटन दबाने या कड़ी चोट इशारा उपस्थित होता है जब साफ किया जा नहीं होते पर सेट है।
कोड की कुछ पंक्तियां मूल रूप से @cja पोस्ट से हैं। उपयोगकर्ता को छू लेती है जब यह और FLAG_ONGOING_EVENT यह एक Ongoing Notification बनाने
चियर्स/खुश codings ...
धन्यवाद @ralphgabb मैंने इसका उपयोग करने की कोशिश की लेकिन फिर भी मैं साफ़ सभी पर क्लिक करके अधिसूचना को साफ़ करने और इशारा स्वाइप करने में सक्षम हूं। मैं कम से कम एपीआई स्तर 1 9 और लक्ष्य एपीआई स्तर 25 – bhavikshah28
पर अजीब, बीमार कोशिश कर रहा हूं, यह कार्य वास्तव में मेरे अंत (कई परियोजनाओं पर प्रयुक्त) पर काम करता है या आप यहां अपने कोड की कुछ पंक्तियां पोस्ट कर सकते हैं। – ralphgabb
@ralphgaab https://prnt.sc/hpzi9e – bhavikshah28
बस अधिसूचना को इन दो झंडे जोड़ने के लिए, FLAG_AUTO_CANCEL अधिसूचना को रोकने के लिए स्वचालित रूप से खारिज कर दिया।
notification.flags=Notification.FLAG_AUTO_CANCEL|Notification.FLAG_ONGOING_EVENT;
- 1. अक्षम कुंजीगार्ड लॉक अधिसूचना
- 2. "पुश अधिसूचना" - राय, स्थापना रद्द करें आवेदन
- 3. मेरे आवेदन के लिए टोस्ट स्टाइल पॉपअप
- 4. आवेदन के निष्पादन के दौरान IntelliTrace को अक्षम करें
- 5. पुश अधिसूचना का परीक्षण कैसे करें मेरे आवेदन में काम कर रहा है
- 6. मेरे आवेदन से वेब पेज लॉन्च करें
- 7. मेरे वीबी.नेट आवेदन पर हस्ताक्षर कैसे करें?
- 8. मेरे आवेदन में सी #
- 9. जीसीएम अधिसूचना प्राप्त होने पर आवेदन लॉन्च करें
- 10. एंड्रॉइड अधिसूचना एलईडी मेरे रंग
- 11. कैसे मेरे शेर आवेदन "सैंडबॉक्स"?
- 12. ऐप से पुश अधिसूचना को सक्षम/अक्षम कैसे करें?
- 13. मेरे आवेदन के साथ मेरे विजेट का एकीकरण
- 14. नियंत्रण विंडोज 7 टास्कबार समूह मेरे आवेदन के लिए
- 15. मेरे आवेदन में 'टर्मिनल' डालना?
- 16. मेरे आवेदन के ट्विटर एपीआई प्राधिकरण
- 17. आवेदन लॉग एकत्रीकरण, प्रबंधन और अधिसूचना
- 18. मेरे आवेदन में पॉपअप को
- 19. ऐप में आईओएस 5 अधिसूचना केंद्र इशारा अक्षम करें
- 20. मेरे आवेदन के लिए उपयोगकर्ता पहली बार स्क्रीन गाइड बनाने के लिए कैसे करें
- 21. मेरे आवेदन में सक्रिय टैब को बदलने के लिए शॉर्टकट
- 22. मेरे सभी एप्लिकेशन या गतिविधि के लिए डिफ़ॉल्ट ध्वनि प्रभाव को अक्षम कैसे करें
- 23. मेरे आवेदन में पढ़ने योग्यता
- 24. पैकेजिंग SQLite डीबी मेरे आवेदन के साथ
- 25. समाशोधन सत्र से देवता बंद करें
- 26. क्यों UnobtrusiveJavaScriptEnabled = सच काम करने के लिए मेरे AJAX अक्षम?
- 27. SDWebImage समाशोधन कैश
- 28. समाशोधन सत्र, expressjs, NodeJS
- 29. एंड्रॉइड पर अधिसूचना के लिए सुनना
- 30. Typo3 - एक्सटेंशन के लिए कैश अक्षम करें
एक अग्रभूमि सेवा काम करेगी क्योंकि यह "स्मृति पर कम होने पर सिस्टम को मारने के लिए उम्मीदवार नहीं है" और अधिसूचना दिखाने की आवश्यकता है। लेकिन क्या यह वास्तव में एक अधिसूचना प्रदर्शित करने के उद्देश्य से पूरी तरह से सेवा बनाने का सबसे अच्छा अभ्यास है जिसे साफ़ नहीं किया जा सकता है? कुरो का जवाब बहुत बेहतर लगता है। – spaaarky21