android - Broadcast received before UI is rendered -


मेरे आवेदन में, मुझे एक ListView रहा है जिसमें TextView & amp; एक या अधिक ImageViews

फिर मैं एक वेब सेवा कॉल करता हूं, जो मुझे प्रतिक्रिया के लिए टेक्स्टव्यू & amp; छवियों की एक यूआरएल स्ट्रिंग (वास्तविक चित्र नहीं)।

मैं इस संहिता को AsyncTask में कॉल कर रहा हूं।

में postExecute () , मैं TextView सेट कर रहा हूं और फिर छवि सामग्री को लाने के लिए एक सेवा कॉल करता हूं।

सीरिज के अंदर, मैं ExecutorService छवियों को एक-एक करके लाने के लिए for-loop के अंदर।

सभी छवियों को ड्राइव में डाउनलोड किए जाने के बाद, मैं अपने खंड को सूचित करने के लिए broadcast भेजता हूं < / कोड> है कि सभी छवियों को डाउनलोड किया जाता है।

खंड में onReiveive () , मैं ImageViews में चित्र सेट करता हूं। पी> मुद्दा कभी-कभी होता है, पर रीसिव () को कॉल किया जाता है, ImageView प्रस्तुत करने से पहले भी बना दिया जाता है।

इसलिए मुझे ImageView पर एक NullPointerException मिलता है।

धन्यवाद

मैं इस समस्या का हल कैसे कर सकता हूं।

  बूलीयन uiReady = fal से; बुलियन छवियाँरेडी = झूठे; निजी ब्रॉडकास्ट रिसेवर mMessageReceiver = नया ब्रॉडकास्ट रिसीवर () {@ ओवरराइड पब्लिक रिकॉइड ऑन रीसेव (प्रसंग संदर्भ, आशय का इरादा) {if (uiReady) {// सेट छवि} अन्य {imagesReady = true; }}} @WindowFocusChanged (बूलियन हैफोकस) पर सार्वजनिक शून्य को ओवरराइड करें {सुपर। विंडवॉक्स्स परिवर्तित (हैफ़ोकस); यदि (imagesReady) {// सेट छवियाँ} अन्य {uiReady = true; }}    

Comments

Popular posts from this blog

c# - ASP.NET MVC - Attaching an entity of type 'MODELNAME' failed because another entity of the same type already has the same primary key value -

jasper reports - How to center align barcode using jasperreports and barcode4j -

django - CommandError: You must set settings.ALLOWED_HOSTS if DEBUG is False -