2011-04-02 11 views
55

एंड्रॉइड में postInvalidate() फ़ंक्शन का उपयोग क्या है? मैं इस समारोह को कई जगहों पर देख रहा हूं। जब मैं Google पर, मैं इतना के साथ बाहर आया:PostInvalidate() क्या करता है?

postInvalidate-- पद यूआई धागा पर एक अमान्य अनुरोध

मैं नहीं जानता कि वाक्यांश क्या "अनुरोध असत्यापित" वहाँ माध्यम। क्या कोई विस्तार से समझा सकता है कि यहां क्या हो रहा है?

उत्तर

110

प्रत्येक वर्ग जो दृश्य वर्ग से ली गई है रद्द और postInvalidate विधि है। अगर अमान्य हो जाता है तो यह सिस्टम को बताता है कि वर्तमान दृश्य बदल गया है और इसे जितनी जल्दी हो सके इसे फिर से खींचा जाना चाहिए। चूंकि इस विधि को केवल आपके यूआईटीएचड से ही बुलाया जा सकता है जब आप यूआईटीएचड में नहीं हैं और फिर भी सिस्टम को सूचित करना चाहते हैं कि आपका व्यू बदल गया है। PostInvalidate विधि सिस्टम को गैर-यूआईटीएचड से सूचित करती है और जल्द से जल्द UIThread पर अगले ईवेंट में दृश्य को फिर से खींचा जाता है। एसडीके दस्तावेज में यह briefly explained भी है।

बस तुलना रद्द और postInvalidate

+1

उत्तर के लिए धन्यवाद। मुझे अब मिल गया। – rogerstone

+1

मैं आपके उत्तर में तर्क देखता हूं, लेकिन अमान्य() भी मेरी गैर-यूआई कक्षा में काम करता है। PostInvalidate() के रूप में ठीक काम करता है। – JustBasti

+1

ग्रेट उत्तर। एंड्रॉइड डॉक्स यह समझाता नहीं है कि इसका मतलब व्यू को फिर से निकालना है। इसे ठीक से साफ़ करें :) – Andy

19

इस विधि से (postInvalidate()), आप गैर-यूआई थ्रेड से View को अमान्य कर सकते हैं। यूआई-थ्रेड invalidate() विधि से View को अमान्य करने के लिए।

अमान्यकरण का मतलब है, कि View.onDraw(Canvas) विधि हम भविष्य (तुरंत) में कुछ बिंदु पर कहा जाता है पूरे पुनः बनाने का होगा View (View दिखाई दे रहा है तो)।

एंड्रॉइड स्वचालित रूप से View एस को फिर से चला रहा है, लेकिन कभी-कभी यह बताना आवश्यक है: "अरे, यह View बदल दिया गया है, जितनी जल्दी हो सके इसे फिर से निकालें।"

अधिक पर:

http://developer.android.com/guide/topics/ui/how-android-draws.html

http://developer.android.com/reference/android/view/View.html#invalidate%28%29

+1

धन्यवाद बहुत बहुत धन्यवाद – rogerstone

1

सरल शब्दों में, invalidate() विधि यूआई थ्रेड से कहा जा सकता है और postInvalidate() आदेश अपडेट करने एंड्रॉयड बताने के लिए गैर-यूआई थ्रेड से कहा जा सकता है कुछ बदलावों के बाद हमारे कस्टम व्यू किए जाते हैं।

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