2012-07-12 9 views
7

मेरी अधिकांश गतिविधियां किसी सर्वर से गतिशील डेटा लोड करती हैं, और जब पृष्ठ फ़ोकस में वापस आता है, तो मैं इसे फिर से लोड करता हूं। अगर मैं उन्हें फिर से लोड करने जा रहा हूं, तो उन्हें चारों ओर रखने के लिए अपमानजनक लगता है, इसलिए यदि मैंने पृष्ठ से दूर नेविगेट किया तो उन पर फिनिश() को कॉल करने का विचार किया। यह उलझन में है कि अगर कुछ गतिविधियां आप वापस जाने के लिए बैक बटन दबा सकते हैं और दूसरों को नहीं, क्योंकि मैंने उन पर फिनिश() कहा है, तो मैं सोच रहा था कि क्या इसकी बुरी आदत सिर्फ खत्म करने के लिए है() सभी गतिविधियों पर उपयोगकर्ता नेविगेट किया है ? (मेरे पास प्रत्येक गतिविधि के नीचे एक नेविगेशन बार है ताकि बैक बटन आवश्यक न हो)। या, क्या यह बेहतर अभ्यास है कि किसी भी गतिविधि पर फिनिश() को कॉल न करें और उम्मीद करें कि वे फोन को धीमा नहीं करेंगे और ओएस उन्हें इकट्ठा करने वाले कचरे का ख्याल रखेगा? मैं एंड्रॉइड प्रोग्रामिंग के लिए नया हूं और मेरे पास एंड्रॉइड फोन नहीं है इसलिए मुझे यकीन नहीं है कि इस स्थिति में आम/सर्वोत्तम अभ्यास क्या है, या यदि यह सिर्फ व्यक्तिगत स्वाद का मामला है।एंड्रॉइड में किसी गतिविधि पर फिनिश() को कॉल करने के लिए सर्वोत्तम अभ्यास?

साथ ही, एंड्रॉइड को गतिविधियों का इतिहास रखने के लिए निर्देश देना संभव है ताकि बैक बटन अभी भी काम कर सके, लेकिन जब वे नेविगेट करते हैं तो उन्हें समाप्त करें ताकि वे संसाधनों को अनिवार्य रूप से नहीं ले रहे हैं?

+3

बस एंड्रॉइड * उपयोगकर्ता * के रूप में भी झुकने के लिए (आपने कहा है कि आपके पास एंड्रॉइड फोन नहीं है), आपने बताया कि बैक बटन का उपयोग करना आवश्यक नहीं है क्योंकि आपके पास प्रत्येक गतिविधि पर नेविगेशन बार है। मैं एक * हमेशा * बैक बटन का उपयोग करता हूं इससे कोई फर्क नहीं पड़ता कि इंटरफ़ेस क्या है, बस इतना ही आदत से बाहर है। कुछ ध्यान में रखना ... शुभकामनाएँ! – Tom

उत्तर

6

जबकि आप गतिविधि पर लौटने पर अपने सभी डेटा को पुनः लोड कर सकते हैं, फिर भी finish() पर कॉल करने पर कोई बात नहीं है।

जब गतिविधियां छिपी हुई हैं, तो वे संसाधनों का उपयोग नहीं करते हैं, और कोई वास्तविक समस्या नहीं है। बस उन्हें छोड़ दें, और फिर जब उपयोगकर्ता वापस नेविगेट करता है, तो यह आवश्यकतानुसार इसे पुनः लोड कर देगा।

इस स्थिति में, यदि आवश्यक हो तो वे भी कचरा इकट्ठा किया जा सकता है - जिसे सभी एंड्रॉइड द्वारा ख्याल रखा जाता है।

0

ज्यादातर परिस्थितियों में आपको कॉल खत्म (और नहीं) कॉल खत्म करने की आवश्यकता नहीं है(); एंड्रॉइड आपके लिए गतिविधियों का प्रबंधन करने का ख्याल रखता है।

यदि उपयोगकर्ता गतिविधि छोड़ देता है तो आपको क्लीनअप करने की आवश्यकता होती है, तो आप विभिन्न प्रकार की कॉलबैक जैसे ऑनड्रोय() पर उस तरह की चीज कर सकते हैं।

यदि आपने पहले से ऐसा नहीं किया है, तो एंड्रॉइड डेवलपर मार्गदर्शिका में Activities पढ़ें।

0

आपको finish() पर कॉल नहीं करना चाहिए जबतक कि आप सुनिश्चित न हों कि गतिविधि लंबे समय तक निष्पादित नहीं की जाएगी। एंड्रॉइड को इसके साथ क्या करना है इसे संभालना बेहतर है। onPause() में अपना सफाई कोड रखें और onResume() में अपना लोडिंग कोड रखें।

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