9

मेरे पास पृष्ठभूमि में फ़ाइलों को डाउनलोड करने के लिए एक सतत अधिसूचना है। मैं कई बार एक साथ प्रगति पट्टी अधिसूचनाओं को अद्यतन करने में सफल रहा हूं जिन्हें रद्द भी किया जा सकता है। हनीकॉम के साथ हाल ही में कुछ एंड्रॉइड टैबलेट को छोड़कर यह सभी परीक्षण उपकरणों पर ठीक काम करता है।एंड्रॉइड हनीकॉम पर जारी अधिसूचना असंगत व्यवहार है

प्रभाव अब है कि मूल अधिसूचना संदेश लगातार फिर से चलाया जाता है, जिससे उपयोगकर्ता चल रहे अधिसूचनाओं की सूची लाने के लिए घड़ी पर क्लिक करने से रोकता है। ऐसे में, कोई प्रगति सलाखों को भी देखा नहीं जाता है। क्या कोई भी हनीकॉम पर प्रगति पट्टी अधिसूचनाओं को अनिवार्य रूप से बनाने में सफल रहा है?

एक तरफ, मुझे यह भी पता चलता है कि मेरी ब्लैक अधिसूचना पाठ अब अधिसूचना सूची की काली पृष्ठभूमि के साथ पठनीय नहीं है। क्या हनीकॉम उपकरणों के लिए सफेद पाठ सेट करने का कोई तरीका है?

नोट: यह और ऑप्टिमस पैड एल 06C एंड्रॉयड 3.0.1 चल Motorola Xoom

नीचे पर परीक्षण किया गया एक अधिसूचना निर्माण

// Create new notification for downloading 
mNotification = new Notification(R.drawable.owl_icon, getNotificationText(R.string.notification_content_downloading), 0); 
mNotification.flags |= (Notification.FLAG_NO_CLEAR | Notification.FLAG_ONGOING_EVENT); 

// Create custom progress bar view 
RemoteViews contentView = new RemoteViews(CourseSyncService.this.getPackageName(), R.layout.notification_downloading); 
contentView.setTextViewText(R.id.notificationTitle, mCourseTitle); 
contentView.setProgressBar(R.id.notificationProgressBar, 100, 0, false); 
contentView.setTextViewText(R.id.notificationPercentage, "0%"); 
mNotification.contentView = contentView; 

// Create pending intent for the notification 
Intent notificationIntent = new Intent(CourseSyncService.this, CancelDownloadActivity.class); 
notificationIntent.putExtra(CourseSyncService.KEY_USER_ID, mUserId); 
notificationIntent.putExtra(CourseSyncService.KEY_COURSE_ID, mCourseId); 
notificationIntent.putExtra(CourseSyncService.KEY_COURSE_TITLE, mCourseTitle); 
PendingIntent contentIntent = PendingIntent.getActivity(CourseSyncService.this, mCourseId, notificationIntent, PendingIntent.FLAG_CANCEL_CURRENT); 
mNotification.contentIntent = contentIntent; 

// Launch notification 
mNotificationManager.notify(mCourseId, mNotification); 

यहाँ है और मैं कैसे है अधिसूचना अद्यतन करें:

// Update the progress bar of the notification view 
mNotification.contentView.setProgressBar(R.id.notificationProgressBar, mItemCount, mProgressCount, false); 
mNotification.contentView.setTextViewText(R.id.notificationPercentage, String.valueOf(mProgress) + "%"); 
mNotificationManager.notify(mCourseId, mNotification); 
+1

अधिसूचित (आईडी, अधिसूचना) में दस्तावेज़ बताते हैं कि एक ही आईडी पर अधिसूचना "अद्यतन जानकारी द्वारा प्रतिस्थापित की जाएगी।" लगता है कि हनीकॉम एक भयंकर रेडिसप्ले जोड़ता है जो पिछले संस्करणों पर नहीं हुआ था। – Rene

+1

1500 से अधिक पर बधाई! मेरे वोट ने आपको किनारे पर धकेल दिया ... लेकिन अधिकतर इस समस्या से पूछने के लिए धन्यवाद, मुझे एक ही समस्या थी और यह इसे ठीक कर दिया। – JPM

+0

वाहू! धन्यवाद! – Chase

उत्तर

7

इस समस्या को ठीक करने के लिए आपको अपनी चल रही अधिसूचना पर bitwise Notification.FLAG_ONLY_ALERT_ONCE सेट करने की आवश्यकता है। इससे यह सुनिश्चित होगा कि अधिसूचना पहली बार प्रदर्शित होने पर उपयोगकर्ता को कभी भी अधिसूचित किया जाता है। उसके बाद, उन्हें अधिसूचना की स्थिति देखने के लिए अधिसूचना ट्रे खोलनी होगी।

Notification notification = new Notification(); 
notification.flags |= Notification.FLAG_ONGOING_EVENT; 
notification.flags |= Notification.FLAG_ONLY_ALERT_ONCE; 
+0

आप मेरे नायक हैं! इस झंडे पर टिप्पणियां "झटके को झटकेदार क्षेत्र में घुमाएगी, जिसे सेट किया जाना चाहिए यदि आप अधिसूचना भेजी जाने पर हर बार ध्वनि और/या कंपन खेलना चाहते हैं, भले ही इसे पहले रद्द नहीं किया गया हो।" इसलिए हो सकता है कि मैंने कभी इसका इस्तेमाल करने की कोशिश नहीं की। धन्यवाद! – Chase

+0

यह मेरे लिए काम नहीं कर रहा है ... नेक्सस 4.0.3 –

0

अधिसूचना सूची में जीबी पर काली पृष्ठभूमि नहीं है; केवल स्टेटस बार को काला में बदल दिया गया था। क्या समस्या परेशानी पैदा कर रही है? क्या आपने यह सुनिश्चित करने के लिए मानक जीबी पर यह कोशिश की है कि यह प्लेटफ़ॉर्म में बदले गए किसी चीज़ की बजाय उस डिवाइस के लिए विशिष्ट समस्या नहीं है? क्या आपको पता है कि यह डिवाइस सीडीडी के साथ संगत है और सीटीएस पास करने वाला कुछ भी है?

+0

मुझे पता था कि मुझे मॉडल का उल्लेख करना चाहिए था। मैं वर्तमान में एंड्रॉइड 3.0.1 चलाने वाले ऑप्टिमस पैड एल-06 सी के साथ काम कर रहा हूं।मैंने किसी अन्य डिवाइस के साथ परीक्षण नहीं किया है, लेकिन जैसे ही मैं एक पर अपना हाथ प्राप्त करूंगा। मुझे परिचित नहीं है कि यह डिवाइस सीडीडी मानकों को पूरा करता है या नहीं। मैं प्रासंगिक जानकारी के साथ प्रश्न अद्यतन कर दूंगा। धन्यवाद। – Chase

+0

इसके अलावा, जब मैंने हनीकॉम का मतलब गलती से जिंजरब्रेड लगाया। और अब मैंने इसे दो उपकरणों पर सत्यापित कर लिया है। – Chase

+1

एंड्रॉइड 3.0 में नए यूआई के हिस्से के रूप में आह हाँ पृष्ठभूमि बदल गई। स्टैक ओवरफ़्लो पर यह उत्तर मदद कर सकता है: http://stackoverflow.com/questions/4867338/custom-notification-layouts-and-text-colors – hackbod

0

(4.0.3 पर, पिछले API स्तरों पर कोशिश नहीं की) इस हल करने के लिए मैं अपने Notification के लिए एक संदर्भ रखना था, यह हर बार कुछ बदल अद्यतन करते हैं, और उसके बाद NotificationManager.notify() के लिए एक ही Notification वस्तु भेज ।

हालांकि मैं flags @ twaddingtion के जवाब के रूप में विनिर्दिष्ट की स्थापना की गई थी, और NotificationManager मेरी सूचना के लिए एक ही id भेजने SystemBar में में गड़बड़ हो रहे थे।

1

मुझे लगता है कि अगर कोई अभी भी देख रहा है तो मुझे यह समस्या मिली। समस्या यह है कि जब आप एक नई अधिसूचना बनाते हैं, तो वर्तमान सिस्टम समय पर कब सेट किया जाता है। यदि आप एक नज़र डालें: http://developer.android.com/reference/android/app/Notification.html#when आप उस डाउनलोड ऑपरेशन को पढ़ लेंगे जब स्टार्ट पर स्टाम्प किया जाना चाहिए। यदि आप नहीं करते (जैसे मैं कर रहा था) और आपके पास एकाधिक डाउनलोड अधिसूचनाएं हैं, तो वे फ़ील्ड के आधार पर खुद को फिर से व्यवस्थित करना जारी रखेंगे।

संबंधित मुद्दे