2012-04-06 14 views
11

जब मैंने अपना एंड्रॉइड प्रोजेक्ट शुरू किया तो मुझे एक गलतफहमी थी कि आवेदन में दिखाए गए प्रत्येक स्क्रीन को एक नई गतिविधि होनी चाहिए। अब मैं प्रोजेक्ट के साथ समाप्त कर चुका हूं, मैंने इसे अपने एमुलेटर के साथ-साथ कुछ एंड्रॉइड फोन पर भी देखा है। अब तक मुझे कोई समस्या नहीं आ रही है, लेकिन हाल ही में मैंने कहीं पढ़ा है कि आवेदन में बहुत सारी गतिविधियां एक बहुत बुरा विचार है।एंड्रॉइड में बहुत सारी गतिविधियां?

वर्तमान में मेरे आवेदन में लगभग 15-20 गतिविधियां हैं। असल में मैंने सुना है कि यह लगभग 5-6 होना चाहिए। क्या मुझे अपने कोड को दोबारा बनाने की जरूरत है या सिर्फ यह करने के बाद हर गतिविधि को खत्म करना है, इसका हिस्सा पर्याप्त है?

उत्तर

30

जटिल अनुप्रयोग बनाने के दौरान आपको निश्चित रूप से कई गतिविधियां बनाने की आवश्यकता है। तो यह आपके आवेदन पर निर्भर करता है कि आपको कितनी गतिविधियां चाहिए। किसी परियोजना में गतिविधियों में से कोई भी प्रदर्शन को प्रभावित नहीं करता है।

प्रभाव आपके एंड्रॉइड के ढेर में गतिविधियों की संख्या द्वारा उत्पादित किया जाता है। तो स्टैक में 5-6 गतिविधियों को रखना बेहतर है (यदि उन्हें अब और आवश्यकता नहीं है तो गतिविधियां समाप्त करें)।

तो अपने आवेदन की मांग के रूप में कई गतिविधियां बनाएं लेकिन एक समय में गतिविधियों को कम से कम खोलें।

+2

अच्छा स्पष्टीकरण के लिए +1। – Deva

+0

गतिविधि कैसे समाप्त करें? –

+1

मेरे पास 15 गतिविधियां हैं जो उपयोगकर्ता लगातार खुलती हैं। क्या मुझे पिछली गतिविधि को बंद करने के लिए कुछ भी करने की ज़रूरत है? धन्यवाद! (+1) –

2

यह अंततः आप जो कर रहे हैं उस पर निर्भर करता है। कुछ बार होते हैं जब आप एक अंतर बनाने के लिए पर्याप्त दृश्य को संशोधित नहीं कर सकते हैं। आदर्श रूप में, 5-6 गतिविधियां बहुत अच्छी हैं, लेकिन कुछ ऐसे मामले जो न केवल करने योग्य नहीं हैं। मैंने लगभग 40 विभिन्न वर्गों और लगभग 18 गतिविधियों के साथ एक मोबाइल ऐप किया है। यह इस तरह से किया गया था कि ऐप को उपयोगकर्ता के साथ कैसे बातचीत करना था। यदि आप 2 या 3 गतिविधियों को एक में विलय कर सकते हैं, तो यह बहुत अच्छा है। यह फ़ाइल आकार और अनुकूलन के साथ भी मदद करेगा, लेकिन यदि आप नहीं कर सकते- इसे बहुत परेशान मत करो।

1

मैं 15 अलग-अलग स्क्रीन = 15 विभिन्न गतिविधियां कहूंगा। मुझे लगता है कि कुछ कारणों में से कुछ गतिविधियों को कम करने में सक्षम हैं, टुकड़ों की शुरूआत के कारण है। हालांकि कोई तर्क देगा कि अगर व्यक्तिगत गतिविधियां काम करती हैं तो टुकड़ों का उपयोग क्यों करें। मुझे लगता है कि यह डेवलपर्स वरीयता पर निर्भर करता है।

+0

जब तक आप ऐसा कुछ नहीं कर रहे हैं जो एक टैबलेट पर अच्छा लगेगा और टुकड़े का उपयोग कर रहे हैं। –

+0

मेरे पास 15 गतिविधियां हैं जो उपयोगकर्ता लगातार खुलती हैं। क्या मुझे पिछली गतिविधि को बंद करने के लिए कुछ भी करने की ज़रूरत है? धन्यवाद! (+1) –

3

एंड्रॉइड सिस्टम जितनी देर हो सके एक आवेदन प्रक्रिया को बनाए रखने की कोशिश करता है, लेकिन आखिरकार नई या अधिक महत्वपूर्ण प्रक्रियाओं के लिए स्मृति को पुनः प्राप्त करने के लिए पुरानी प्रक्रियाओं को हटाने की आवश्यकता है। यह Activity एस पर लागू होता है जो पृष्ठभूमि में चल रहे हैं ... पुराने Activity एस आपके लिए प्रबंधित किए जाते हैं और सिस्टम को नई प्रक्रियाओं के लिए स्मृति को पुनः प्राप्त करने की आवश्यकता होती है जब नष्ट हो जाती है।

कहा जा रहा है, मुझे लगता है कि वहाँ दो चीजें आप विचार करना चाहिए:

  1. उपयोगकर्ता अनुभव। क्या आपके ऐप को वास्तव में 15-20 Activity एस की आवश्यकता है? क्या आप किसी भी तरह स्क्रीन की संख्या में कटौती कर सकते हैं? कम Activity एस आमतौर पर बेहतर होता है, क्योंकि जब उपयोगकर्ता एप्लिकेशन को नेविगेट कर रहा होता है तो उसे कम बातचीत की आवश्यकता होती है।

  2. कोड डिज़ाइन। जबकि प्रत्येक Activity की अपनी अलग कक्षा होगी, यह आपके आवेदन को लागू करते समय स्मार्ट डिज़ाइन-निर्णय लेने से आपको प्रतिबंधित नहीं करता है। उदाहरण के लिए, आप abstract class को बढ़ाकर Activity एस को समूहीकृत करने का प्रयास कर सकते हैं। चूंकि एंड्रॉइड प्रोजेक्ट आकार में बढ़ते हैं, इसलिए उन्हें प्रबंधित करना अधिक कठिन हो जाता है। इस तरह से समान वर्गों के बीच कोड साझा करना सुनिश्चित करेगा कि आप बिना किसी परेशानी के अपने आवेदन के मूल में सरल परिवर्तन कर सकते हैं।

+0

मेरे पास 15 गतिविधियां हैं जो उपयोगकर्ता लगातार खुलती हैं। क्या मुझे पिछली गतिविधि को बंद करने के लिए कुछ भी करने की ज़रूरत है? धन्यवाद! (+1) –

6

यदि आपकी परियोजना में कई गतिविधियां हैं लेकिन कुछ गतिविधि महत्वपूर्ण नहीं है, तो इसका मतलब है कि किसी अन्य गतिविधि के बाद आपको किसी भी गतिविधि की आवश्यकता नहीं है।

मैनिफ़ेस्ट फ़ाइल सेट में: android:noHistory="true"

उदाहरण:

Activity1 -> Activity2 -> Activity3 -> Activity4..................-> Activity20 

मैनिफ़ेस्ट फ़ाइल में:

activity android:name=".Activity1" android:label="@string/app_name" android:noHistory="true" 

यदि u startActivity से पहले सेट खत्म() से आशय का उपयोग कर Activity1 फिर से फोन()

मुझे लगता है कि यह आपकी मदद कर सकता है

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