वास्तव में किस विशेषता का taskAffinity
उपयोग किया जाता है? मैं प्रलेखन के माध्यम से चला गया, लेकिन मैं ज्यादा समझ नहीं सका।
क्या कोई आम आदमी की कार्यशैली को स्पष्ट कर सकता है?
वास्तव में किस विशेषता का taskAffinity
उपयोग किया जाता है? मैं प्रलेखन के माध्यम से चला गया, लेकिन मैं ज्यादा समझ नहीं सका।
क्या कोई आम आदमी की कार्यशैली को स्पष्ट कर सकता है?
जवाबों:
Android टास्क एफिनिटी का उपयोग किसके लिए किया जाता है?
Android एप्लिकेशन में ऐसी गतिविधियाँ होती हैं जो कार्ड के डेक की तरह एक स्टैक बनाती हैं। यदि आप एक एंड्रॉइड एप्लिकेशन शुरू करते हैं, और पांच गतिविधियों ए, बी, सी, डी, ई शुरू करते हैं। वे एक स्टैक बनाएंगे
E - chat view
D - weather screen
C - map view
B - weather screen
A - login screen
ई अंतिम गतिविधि थी जिसे शुरू किया जाना था और यह प्रदर्शित हो रही है। यदि आप E को बंद करते हैं, तो D दिखाया जाएगा। यदि आप D को बंद करते हैं, तो C दिखाया जाएगा। आदि।
ध्यान दें कि क्रियाएँ B
और D
वही गतिविधि हैं। क्या होगा यदि उपयोगकर्ता को कुछ संशोधन करने थे D weather screen
, और फिर गतिविधि को बंद करने का फैसला किया, फिर उपयोगकर्ता को बंद करेंC Map view
?
तब उपयोगकर्ता मौसम की स्क्रीन पर वापस आ जाएगा और उपयोगकर्ता नाखुश होगा क्योंकि स्तर पर किए गए परिवर्तनों को स्तर D weather screen
में सहेजा नहीं गया था B weather screen
। हालाँकि यह एक ही गतिविधि है, यह उस गतिविधि का एक अलग स्टेट है।
उपयोगकर्ता के पास गतिविधियों की एक 5 परत थी, और उनमें से दो समान गतिविधि थी। स्टैक के सभी 5 को बंद करने से वह घटना उत्पन्न होगी जहां आप एक ही गतिविधि के दो अलग-अलग संस्करणों के साथ बातचीत करेंगे और काफी भ्रमित हो सकते हैं।
उपयोगकर्ता आमतौर पर गतिविधियों के कठोर ढेर के संदर्भ में नहीं सोचते हैं। वे सोचते हैं: "मौसम का दृश्य मैं वहां बदलाव करूंगा" और फिर वे मानचित्र दृश्य पर वापस जाना चाहते हैं। फिर वापस ऊपर जाएं क्योंकि वे लॉगिन स्क्रीन पर वापस जाना चाहते हैं। क्यों B weather app
दिखाया जा रहा है और यह सेटिंग्स को स्तर से क्यों नहीं बचाता है D
?
प्रोग्रामर अगर क्रियाएँ कुछ भ्रम की स्थिति को दूर करने में सक्षम हो सकता B
है और D
राज्य से जुड़ी हुई है। इस तरह एक व्यक्ति दूसरे को बदलता है। हर बार जब उपयोगकर्ता एक नई मौसम स्क्रीन खोलता है, तो वह गुप्त रूप से मौसम स्क्रीन का एकल उदाहरण खोलता है।
इन परिस्थितियों में, कार्य को बदलना गतिविधि के क्षेत्र में वांछनीय हो सकता है। उपयोगकर्ता स्तर D को बदल देगा और फिर B के स्तर तक वापस आ जाएगा और B में वे परिवर्तन देखेगा जो D को किए गए थे।
कार्यक्रम एक स्टैक रखता है जिसके माध्यम से आप बैकअप ले सकते हैं, जो अच्छा है, और जब उपयोगकर्ता यादृच्छिक स्थानों में एक ही गतिविधि के एक्स इंस्टेंस को खोलता है, तो वे सभी एक होते हैं।
अधिक विवरण के साथ स्लाइड शो: http://www.slideshare.net/RanNachmany/manipulating-android-tasks-and-back-stack
singleInstance
बजाय का उपयोग करें taskAffinity
?
taskAffinity
:-( स्पष्टीकरण अस्पष्ट है। आश्चर्यजनक है कि उत्तर के उत्तर इतनी उथल-पुथल प्राप्त करते हैं।
taskAffinity
किया जाता है: उस गतिविधि का नाम निर्दिष्ट करने के लिए उपयोग किया जाता है जिसे गतिविधि चलाने के लिए पसंद करती है। जब Intent
ध्वज होता है FLAG_ACTIVITY_NEW_TASK
, तो गतिविधि को इस विशेष कार्य में डाल दिया जाता है (द्वारा परिभाषित taskAffinity
)।
Although it's the same activity, it's a different STATE of that activity.
मैं कहूंगा, "यह उस गतिविधि का एक और उदाहरण है।"
आत्मीयता बताती है कि कौन सी गतिविधि किस कार्य से संबंधित है।
आत्मीयता दो परिस्थितियों में खेल में आती है:
जब कोई गतिविधि शुरू करने वाले इरादे में FLAG_ACTIVITY_NEW_TASK ध्वज होता है।
जब किसी गतिविधि की इसकी भत्ते की विशेषता "सच" पर सेट होती है।
कृपया http://developer.android.com/guide/compenders/tasks-and-back-stack.html देखें
आप इस विस्तृत प्रस्तुति में सभी मामले (और कुछ समय किनारे के मामले) पा सकते हैं