तो मेरे पास एक ऐप विजेट है जो अच्छी तरह से ताज़ा हो रहा है, ImageView
में नियमित रूप से घड़ी की तरह एक नया बिटमैप लोड कर रहा है। फिर, किसी बिंदु पर, और चुपचाप, यह किसी और को अद्यतन करना बंद कर देगा। मैं लॉग से बता सकता हूं, और एक सर्वर पर गतिविधि से जो मेरा कोड पूछताछ कर रहा है, कि विजेट वास्तव में नियमित रूप से आग लग रहा है (onReceive()
द्वारा पकड़े गए प्रसारणों के माध्यम से, और इसकी सामग्री को अपेक्षित रूप से कर रहा है। केवल एक चीज जो नहीं है ऐसा हो रहा है कि विजेट सामग्री अद्यतन नहीं हो रही है।एपविजेट फ्रीज और अब अपडेट करने से इंकार कर देता है: अपडेट को अनदेखा करता है AppWidget
तो, विजेट में आग लगने पर कोड को निष्पादित करने में, मैं एक नया रिमोट व्यू बना रहा हूं और इसमें सामान जोड़ रहा हूं, जिसमें remoteViews.setImageViewBitmap(imageViewID, bmp)
के माध्यम से एक नया बिटमैप लोड करना शामिल है, और फिर अंत में appWidgetManager.updateAppWidget(appWidgetId, remoteViews)
अच्छी तरह से बुला विजेट सामग्री अद्यतन करने के लिए। काम करता है ... जब तक यह काम करना बंद।
मैं, क्या कोड पोस्ट करने के लिए यकीन नहीं है क्योंकि बात समय की ठीक 99% काम करता है, लेकिन कभी-कभी updateAppWidget()
बंद हो जाता है काम कर , बिना किसी प्रकट कारण के। ऐसा लगता है कि यह मेरे कोड में एक बग के बजाय एक सिस्टम मुद्दा है, लेकिन मैं गलत हो सकता था।
एकमात्र चीज जो प्रतीत होता है यह संकेत तब होता है जब कनेक्टिविटी में बदलाव होते हैं, उदा। वाईफाई के लिए कोई सिग्नल नहीं जा रहा है, शायद इस तरह के बदलाव। ऐसा लगता है कि उन परिस्थितियों में और अधिक होता है।
और एक बार जब विजेट फ्रीज हो जाता है, तो केवल एक चीज जो इसे अस्वीकार करती है, डिवाइस को पुनरारंभ कर रही है। पुनरारंभ किए बिना, विजेट को हटाने और एक नया जोड़ने से काम नहीं होता है। वास्तव में, एक मृत विजेट में एक नया परिणाम जोड़ना जो कॉन्फ़िगर गतिविधि को खोलने के लिए एक क्लिक का जवाब भी नहीं देता है, संभवतः remoteViews.setOnClickPendingIntent(R.id.widget, configPendingIntent)
को RemoteViews
में अन्य सभी चीज़ों की तरह अनदेखा किया जाता है, मैं ध्यान से appWidgetManager.updateAppWidget()
पर निर्माण और भेजता हूं।
यह रूप में कई अन्य लोगों के यहां से वर्णित काफी हो रहा है:
https://code.google.com/p/android/issues/detail?id=28216
और के रूप में अभी तक वहाँ कोई ज्ञात इलाज हो रहा है। https://code.google.com/p/android/issues/detail?id=28216#c56 पर पोस्ट कुछ वादा पेश करने लग रहा था, लेकिन मैंने विभिन्न स्थानों पर AppWidgetHost.startListening()
पर कॉल करने का प्रयास किया है, जिसमें दोहराने वाले अलार्म के माध्यम से नियमित अंतराल शामिल है, यह देखने के लिए कि क्या मैं विजेट को किकस्टार्ट कर सकता हूं, लेकिन कुछ भी काम नहीं करता है।
और अन्य उपयोगकर्ताओं (बल्कि डेवलपर्स से) भी इस मुद्दे को देख रहा हो रहे हैं: http://androidforums.com/threads/clock-widget-keeps-freezing-please-help.530333/
कोई भी विचार? यह धीरे-धीरे मुझे पागल कर रहा है!
मुझे समाधान भी नहीं मिला है, लेकिन मुझे एक कामकाज मिला है (हालांकि एक अच्छा नहीं)। मैंने पाया कि एक बार मैंने अपनी होम स्क्रीन से कई अन्य समान विजेट हटा दिए जाने पर समस्या दूर हो गई है। मेरा विजेट Play Store पर दूसरों के समान है, इसलिए मेरे होम स्क्रीन पर भी मेरी प्रतियोगिता से कुछ विजेट्स थे। चूंकि मैंने उन्हें हटा दिया है, इसलिए मैं बिना किसी ग्लिच के अपडेट कर रहा हूं। मैंने जितना संभव हो उतना मेमोरी मुक्त करने की कोशिश की, ऐप कैश साफ़ कर दिया, और लॉककैट (डायल * # 9900 # फोन में, फिर "डंपस्टेट/लॉगकैट हटाएं" बटन दबाएं)। तब से ठीक रहा है। – drmrbrewer