मुझे एक ऐसी सेवा मिली है जो डेटा के लिए वेबसाइट स्क्रैप करे, यदि आवश्यक हो तो उपयोगकर्ता को एक सूचना दें।सेवा समाप्त होने पर सूचनाएं गायब हो जाती हैं
समस्या मैं आ रहीकि सूचनाएं ही गायब सेवा बंद (तुरन्त हो सकता है) के रूप में है। नीचे दिया गया कोड ऐप के सभी अधिसूचना कोड है। मैंने नोटिफिकेशन रद्द करने के लिए किसी भी कोड में नहीं रखा है।
public static void CreateNotificationCompat(int notificationID, String link, String title, String text, Context ctx)
{
Intent notificationIntent = new Intent("android.intent.action.VIEW", Uri.parse(link));
PendingIntent contentIntent = PendingIntent.getActivity(ctx.getApplicationContext(), 0, notificationIntent, 0);
NotificationManager nm = (NotificationManager) ctx
.getSystemService(Context.NOTIFICATION_SERVICE);
NotificationCompat.Builder builder = new NotificationCompat.Builder(ctx);
Resources res = ctx.getResources();
builder.setContentIntent(contentIntent)
.setSmallIcon(R.drawable.notify_icon)
.setWhen(System.currentTimeMillis())
.setContentTitle(title)
.setContentText(text)
.setAutoCancel(false);
Notification n = builder.getNotification();
nm.notify(notificationID, n);
}
यदि यह किसी भी फर्क नहीं पड़ता मैं यहाँ आवेदन संदर्भ का उपयोग कर रहा (यकीन है कि यह नहीं है)।
मेरे सेवाओं को समय-समय शुरू होता है, एक वेबसाइट प्रोसेस करता है, यदि आवश्यक हो तो सूचित करता है और फिर बंद कर देता है।
मेरी सेवा के अंत के बजाय सिर्फ stopSelf बुला() मैं 30 या तो सेकंड के लिए सोने और उसके बाद() stopSelf फोन पर। तब अधिसूचना 30 सेकंड तक रहती है और फिर गायब हो जाती है। नोटिफिकेशन गायब होने पर लॉगकैट में कुछ भी प्रासंगिक नहीं दिखाई देता है।
मैं केवल अब तक आईसीएस मदद से इसका परीक्षण कर लिया है।
यह ठीक होना चाहिए। आम तौर पर अधिसूचनाएं गायब हो जाएंगी यदि आपका आवेदन जबरन मार डाला गया है। मैं उम्मीद करता हूं कि कुछ दुर्घटनाग्रस्त हो रहा है। यह देखना दिलचस्प होगा कि आप "नींद" के लिए किस कोड का उपयोग कर रहे हैं (क्या आप वास्तव में थ्रेड को सो रहे हैं?) और क्या थ्रेड चल रहा है। प्रयोग के लिए 30s नींद को हटाने की कोशिश करना और यह देखना भी दिलचस्प होगा कि क्या वही व्यवहार होता है। – kabuko
कोड है जहां आपके पास कोई सूचना है तो नोटिफिकेशन रद्द कर देता है? इसके अलावा एफवाईआई आपको एंड्रॉइड.intent.action जैसे प्रत्यक्ष स्ट्रिंग का उपयोग नहीं करना चाहिए। * क्योंकि यह एक कॉन्स्टेंट है जो इरादे वर्ग में उपलब्ध है। @ user1531605 – JoxTraex
अगर सेवा से अनुरोध किया जाता है कि "अधिसूचना पहले" अधिसूचना पोस्ट की गई है, यानी उसी कोड निष्पादन श्रृंखला पर, अधिसूचना को मंजूरी दे दी जाएगी। –