जब आप अपने ऐप को होम स्क्रीन से सीधे लॉन्च करते हैं तो आप दो संदर्भों के बीच अंतर देख सकते हैं जब आपका ऐप किसी अन्य ऐप से साझा इरादे से लॉन्च किया जाता है।
यहाँ @CommonSenseCode द्वारा उल्लिखित "गैर-मानक बैक स्टैक व्यवहार" का व्यावहारिक उदाहरण दिया गया है:
मान लीजिए कि आपके पास दो ऐप हैं जो एक दूसरे के साथ संवाद करते हैं, App1 और App2 ।
लॉन्च App2: लांचर से MainActivity । फिर MainActivity लॉन्च App2: सेकेंडरी ऐक्टिविटी से । वहाँ, या तो गतिविधि के संदर्भ या अनुप्रयोग के संदर्भ का उपयोग करते हुए, दोनों गतिविधियाँ एक ही कार्य में रहती हैं और यह ठीक है (यह देखते हुए कि आप सभी मानक लॉन्च मोड और आशय के झंडे का उपयोग करते हैं)। आप बैक प्रेस के साथ मेनऐक्टिविटी में वापस जा सकते हैं और हाल के ऐप्स में आपके पास केवल एक ही काम है।
मान लीजिए कि अब आप App1 में हैं और App2 लॉन्च करें: एक साझा इरादे के साथ मुख्य गतिविधि (ACTION_SEND या ACTION_SEND_MULTIPLE)। फिर वहां से App2: सेकेंडरीएक्टिविटी (हमेशा सभी मानक लॉन्च मोड और आशय के झंडे के साथ) लॉन्च करने का प्रयास करें । क्या होता है:
यदि आप App2 लॉन्च करते हैं: Android <10 पर एप्लिकेशन संदर्भ के साथ माध्यमिकता आप एक ही कार्य में सभी गतिविधियों को लॉन्च नहीं कर सकते । मैंने एंड्रॉइड 7 और 8 के साथ प्रयास किया है और माध्यमिकता को हमेशा एक नए कार्य में लॉन्च किया जाता है (मुझे लगता है क्योंकि App2: द्वितीयक सक्रियता App2 अनुप्रयोग संदर्भ के साथ लॉन्च की गई है लेकिन आप App1 से आ रहे हैं और आपने सीधे App2 एप्लिकेशन लॉन्च नहीं किया है । शायद हुड एंड्रॉयड के तहत मान्यता है कि और FLAG_ACTIVITY_NEW_TASK का उपयोग करें)। यह आपकी जरूरतों के आधार पर अच्छा या बुरा हो सकता है, क्योंकि मेरा आवेदन खराब था।
एंड्रॉइड 10 पर ऐप
"गतिविधि के संदर्भ के बाहर से कॉलिंग स्टार्टअक्टिविटी () संदेश के साथ क्रैश हो जाता है, इसके लिए FLAG_ACTIVITY_NEW_TASK ध्वज की आवश्यकता होती है। क्या यह वास्तव में आप चाहते हैं?" ।
इसलिए इसे एंड्रॉइड 10 पर काम करने के लिए आपको FALG_ACTIVITY_NEW_TASK का उपयोग करना होगा और आप एक ही कार्य में सभी गतिविधियों को नहीं चला सकते।
जैसा कि आप देख सकते हैं कि व्यवहार एंड्रॉइड संस्करणों के बीच भिन्न है, अजीब है।
यदि आप App2 लॉन्च करते हैं: गतिविधि संदर्भ के साथ माध्यमिकता सभी अच्छी तरह से चलती है और आप एक ही कार्य में सभी गतिविधियों को एक रैखिक बैकस्टैक नेविगेशन के रूप में चला सकते हैं।
मुझे आशा है कि मैंने कुछ उपयोगी जानकारी जोड़ी है