2012-09-26 13 views
13

एंड्रॉयड में हम एक स्थित बटन के लिए एक onClick ईवेंट (या किसी अन्य दृश्य मुझे लगता है कि) स्थापित करने के लिए 2 तरीके हैं:कौन सा एक बेहतर प्रदर्शन समझदार है: एंड्रॉयड वी.एस. setOnClickListener: onclick = "onClick"

परिदृश्य एक (

<Button android:onClick="handler" /> 

है: प्रोग्राम के रूप में):

Button b = (Button) findViewById(R.id.mybutton); 
b.setOnClickListener(this); 

परिदृश्य दो (एक्सएमएल फ़ाइल में) एक्सएमएल या प्रोग्रामेटिक रूप से ऐसा करने के लिए कोई प्रदर्शन जुर्माना है या यह वही है?

+0

मैं किसी भी तरह से एक विशेषज्ञ नहीं हूं, लेकिन मैं कहूंगा कि प्रोग्रामेटिक तरीके से प्रदर्शन में बेहतर है ... मूल रूप से वही है, लेकिन एक्सएमएल तरीके से आप एक कदम जोड़ते हैं, मुझे लगता है कि एक्सएमएल पार्स किया गया है लेकिन मैं गलत हो सकता हूं, मैं केवल अनुमान लगा रहा हूं। – Fustigador

+0

मुझे नहीं लगता कि यह एक महत्वपूर्ण अंतर बनाता है। यदि आप प्रदर्शन समस्याओं में भाग ले रहे हैं जो उन्हें हल करने का तरीका नहीं है। मुझे लगता है कि यदि आप एक फर्क पड़ने के लिए उस बटन का उपयोग कर रहे हैं तो असली समस्या आपका लेआउट है। – IchBinKeinBaum

उत्तर

1

दोनों प्रदर्शन में समान हैं। संकलन करते समय एक्सएमएल बाइनरी कोड में प्री-पार्स किया गया है। तो एक्सएमएल में कोई ओवर-हेड नहीं है।

0

यूनिट परीक्षणों के माध्यम से जानने का एकमात्र तरीका है .. यह पूरी तरह से इस पर निर्भर करता है कि इसे कैसे नियंत्रित किया गया है ... अगर मैं इसे सही अनुमान नहीं लगा रहा हूं, तो इसे एक्सएमएल में घोषित करना थोड़ा धीमा हो सकता है क्योंकि एक्सएमएल को पार्स किया जाना चाहिए और फिर विधि को बुलाया जाना चाहिए .. फिर भी यह सुनिश्चित नहीं हो सकता है, यह एक शुद्ध एंड्रॉइड ओएस डिजाइनर पसंद

+0

आप सही हो सकते हैं, लेकिन प्रीपेरिंग केवल एक बार compule समय पर किया जाता है। जब ऐप को एपीके के रूप में प्रकाशित किया जाता है तो यह पहले से ही बाइनरी कोड है। –

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