2011-06-25 9 views
10

सुपर.ऑनस्टॉप() को कॉल करने का सही तरीका क्या है, यानी श्रोता को अनधिकृत करते समय?सुपर.ऑनटॉप() को कॉल करने का सही तरीका श्रोता

मैंने देखा है:

protected void onStop() { 
    sensorManager.unregisterListener(this); 
    super.onStop(); 
} 

या

protected void onStop() { 
    super.onStop(); 
    sensorManager.unregisterListener(this); 
} 
+0

मुझे हमेशा बताया गया है कि 'सुपर' को ओवररोड विधि की पहली चीज़ के रूप में बुलाया जाना चाहिए (जिसे आप सुपर करना चाहते हैं!) प्रैक्टिस में, मुझे नहीं लगता कि यह वास्तव में मायने रखता है, और यह अधिक है चीजों को करने का "साफ कोड" तरीका। – Eric

उत्तर

9

तुम हमेशा यह पहली बार ज्यादातर एक सुरक्षा तंत्र के रूप में बुलाना चाहिए,: अगर वहाँ एक अपवाद तो सुपर क्लास उदाहरण पद्धति पहले से ही किया गया है जाएगा बुलाया।

4

इससे कोई फर्क नहीं पड़ता। जब तक कि आप शुरू होने वाले कुछ राज्यों पर निर्भर न हों (और जहां तक ​​कोई ढांचा वर्ग संबंधित हैं, मैं गारंटी दे सकता हूं कि आप नहीं हैं) आप इसे सुपरक्लास के बाद स्वतंत्र रूप से कॉल कर सकते हैं। यदि सुपरक्लास अपवाद फेंकता है तो आपका पूरा ऐप क्रैश होने जा रहा है, इसलिए इसके कारण एक या दूसरे को ऑर्डर करने का कोई कारण नहीं है।

उस ने कहा, केवल पहली पंक्ति पर इन कॉलों को रखने की स्थिरता के लिए अच्छा है क्योंकि वह जगह है जहां लोग उन्हें देखने की उम्मीद करते हैं और इससे भविष्य में गलतियां करने में मदद मिलेगी जैसे विधि में कोड हटाना और गलती से हटाना सुपर क्लास को बुलाओ।

2

जो मैंने पढ़ा है, उससे आप जिस विधियों को ओवरराइड करते हैं, वे घटक विनाश (ऑन पॉज़(), ऑनस्टॉप(), ऑनस्ट्रोय() इत्यादि) का हिस्सा हैं, आपको अपना काम पहले करना चाहिए और सुपरक्लास को अंतिम चीज़ के रूप में चेन करना चाहिए । इस तरह, यदि एंड्रॉइड कुछ ऐसा साफ कर देता है जिस पर आपका काम निर्भर करता है, तो आप पहले अपना काम करेंगे।

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