मैंने कई गतिविधि लेआउट के साथ बहुत सारी समस्याओं का अनुभव किया है कि मैं इसे दृढ़ता से हतोत्साहित करता हूं, जब तक कि इसे लेने का अच्छा कारण न हो।
कई गतिविधियों का नुकसान
कई गतिविधियों का उपयोग करते हुए गतिविधि से डेटा वापस करने के लिए कोड को रिफलेक्टर करना बहुत कठिन है।
यदि आप एक 'उप-गतिविधि' कहते हैं तो मुख्य गतिविधि को मार दिया जा सकता है। लेकिन आप कभी भी अनुभव नहीं करते हैं कि एक सभ्य डिवाइस पर डिबगिंग करते हैं, इसलिए आपको हमेशा राज्य को बचाने और राज्य को सही ढंग से पुनर्प्राप्त करने की आवश्यकता है। वह पीड़ा है। किसी लाइब्रेरी (अर्थात किसी अन्य गतिविधि) पर किसी विधि को कॉल करने की कल्पना करें, और आपको यह सुनिश्चित करना होगा कि जब वह विधि आपके ऐप को वापस लाती है तो VM (यानी गतिविधि) में सभी ऑब्जेक्ट्स पर सभी क्षेत्रों के साथ अपने राज्य को पूरी तरह से फिर से बनाने में सक्षम होना चाहिए। restoreIntance)। यह पागल है।
इसके अलावा दूसरा तरीका है, जब आप एक सबएक्टिविटी खोलते हैं तो वीएम को मारा जा सकता है क्योंकि सबऐक्टिविटी पहले स्पॉन्ड की गई थी, जैसे कि ऐप को कम से कम करने के दौरान सबऐक्टिविटी प्रदर्शित होती है।
संबंधित एप-स्टेट को संग्रहीत करने के लिए इसकी इतनी सफाई है, और मेरे मामले में, सबसे अधिक बार यदि वीएम को मार दिया जाता है, तो मैं उपयोगकर्ता को मुख्य-स्क्रीन पर वापस करना चाहता हूं, और उन्हें अपना सामान फिर से करने दूंगा, क्योंकि मैं डॉन 30-50 घंटे कोडिंग सेव / रिज्यूम कार्यक्षमता को खर्च नहीं करते हैं जो 0.1% उपयोगकर्ता कभी भी अनुभव करेंगे।
विकल्प
टुकड़े या सिर्फ आप गतिविधि का प्रबंधन खुद को देखता है। विचारों को मैन्युअल रूप से प्रबंधित करने, वांछित होने पर संक्रमण के साथ गतिविधियों / टुकड़ों के लिए कुछ दृश्य-स्विचिंग विकल्प को कोड करने की आवश्यकता होती है।
और इसका कोई मतलब नहीं है कि एक मेगा-गतिविधि, जैसा कि स्वीकृत उत्तर में सुझाया गया है, किसी एक मेगा-ऐप के अलावा किसी अन्य तरीके से। इसे बस फिटिंग टुकड़ों में कोडबेस के थोड़ा और डिज़ाइन की आवश्यकता होती है, क्योंकि काम के प्रबंधन के दृष्टिकोण से थोड़ा अधिक काम होता है, हालांकि बहुत कम काम गतिविधि-राज्य और अन्य अजीबता का प्रबंधन करता है।
संभवतः प्रासंगिक: Reddit: यह आधिकारिक है: Google आधिकारिक तौर पर एकल गतिविधि ऐप आर्किटेक्चर की सिफारिश करता है