2013-01-15 17 views
7

मैं अपने android ऐप्लिकेशन में Analytics लागू कर रहा हूँ, और मैं जब कॉल करने के लिए super.onPause()super.onPause() को कॉल करने के लिए कब?

if (mAnalyticsSession != null) { 
    mAnalyticsSession.close(); 
    mAnalyticsSession.upload(); 
} 

super.onPause(); 

बनाम से पहले अपलोड कार्रवाई करने के बाद super.onPause() बुला के प्रभाव क्या है के बारे में सलाह चाहते हैं?

सामान्य रूप से, कब super.onPause() पर कॉल करना चाहिए?

+0

आपका स्वागत है। एसओ के लिए, एसी का चयन करने के लिए मत भूलना सही उत्तर :) – m0skit0

+0

संबंधित: https://stackoverflow.com/q/16925579/56285 और https://stackoverflow.com/q/9625920/56285 – Jonik

उत्तर

4

आप अपने Activity.onPause() ओवरराइड में केवल super.onPause() पर कॉल करें।

public class YourActivity extends Activity { 

    @Override 
    public void onPause() { 
     super.onPause(); 
     // Do your stuff, e.g. save your application state 
    } 

} 

ध्यान दें कि अगर आपको इसकी आवश्यकता नहीं है तो आपको इसे ओवरराइड करने की आवश्यकता नहीं है। यदि आप इसे ओवरराइड करने जा रहे हैं, तो यहां धीमी प्रक्रियाएं न करें या आपको एएनआर मिल सकता है।

+0

तो आप सुपर.ऑनपोज() पहले और फिर अन्य कार्रवाइयों को कॉल करने की सलाह देते हैं? –

+0

वास्तव में कोई फर्क नहीं पड़ता। – m0skit0

+0

ठीक है। मैं उन्हें सुपर से पहले रखने के बारे में थोड़ा चिंतित था। रोकें() लेकिन विश्लेषिकी एसडीके दिशानिर्देशों ने कहा कि इसे पहले होने की जरूरत है। –

13

चयनित जवाब, सही नहीं है (मैं जानता हूँ कि यह एक पुराने सवाल है, लेकिन नए पाठकों के लिए यहाँ सही तरीका है:, Super.onPause या Super.OnStart के बाद अपने कोड जोड़ें ... और यहाँ है अपने प्रश्न के लिए एक Android संदर्भ (सीधा लिंक टिप्पणी में है):

क्रियाएँ से

उद्धरण: इन जीवन चक्र के तरीकों में से आपका क्रियान्वयन हमेशा किसी भी काम करने से पहले सुपर क्लास कार्यान्वयन कॉल करना होगा

+2

यहां दस्तावेज़ों का लिंक दिया गया है: http://developer.android.com/guide/components/activities.html – bkurzius

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