2011-07-15 18 views
7

मेरे आवेदन में तीन गतिविधियां हैं A -> B-> Cगतिविधि का एकल उदाहरण

गतिविधि ए को startActivityForResult() के माध्यम से दूसरी गतिविधि से बुलाया जाता है। गतिविधि बी और सी को भी इसी तरह कहा जाता है। मुझे अधिसूचना बार से गतिविधि ए को भी कॉल करना होगा (यदि कुछ विशिष्ट अधिसूचना है)।

अब, यदि वर्तमान में मैं गतिविधि बी या सी में हूं, और मैं अधिसूचना बार पर क्लिक करता हूं, और गतिविधि ए पर कॉल करता हूं, तो ऐप केवल गतिविधि ए पर जाता है और सक्रियण बी या सी के माध्यम से दर्ज डेटा जारी नहीं रहता है।

मुझे ऐसा व्यवहार नहीं चाहिए। मैं चाहता हूं कि अगर मैं अधिसूचना पर क्लिक करता हूं, तो इसे केवल वर्तमान स्क्रीन पर रीडायरेक्ट करना चाहिए। क्या कोई मदद कर सकता है। (मैंने activity:launchMode को SingleTask के रूप में वर्णित किया है)।

उत्तर

0

आप एक स्थिर चर का उपयोग करने के लिए अन्य डेटा निर्धारित करने में सक्षम हो सकता है:

<activity 
    android:name=".MyActivity" 
    android:label="@string/app_name" 
    android:launchMode="singleTask" 
    > 
    <intent-filter> 
     <action android:name="android.intent.action.MAIN" /> 
     <category android:name="android.intent.category.LAUNCHER" /> 
    </intent-filter> 
</activity> 

यहाँ एक और सवाल है कि उपयोगी हो सकता है। मुझे यकीन नहीं है कि अन्य गतिविधियों से आप कितना या किस प्रकार का डेटा एक्सेस करना चाहते हैं।

लगातार भंडारण के लिए लिखना भी काम कर सकता है, लेकिन फिर - आप जो डेटा संग्रहीत कर रहे हैं उसकी अस्पष्टता और इसका जवाब देना कितना मुश्किल हो जाता है। प्रत्येक गतिविधि के onResume और onSuspend मेथडोड में लगातार स्टोरेज लिखें/पढ़ें (या सुपर एक्टिविटी क्लास बनाएं और इसे ए, बी और सी

+0

यह मेरे लिए भी काम नहीं करता है। – Sachchidanand

+0

लगातार भंडारण में काम करने के लिए खेद है? – CrackerJack9

+0

कोई काम नहीं करता है, इसलिए हमने अपने ऐप का डिज़ाइन बदल दिया। कोई भी तरीका आपको धन्यवाद बहुत – Sachchidanand

19

android:launchMode="singleTask" का उपयोग शायद सबसे अच्छा तरीका है, क्योंकि यह पहले से चल रहा है, तो गतिविधि को फिर से नहीं बनाएगा। बस इसे अपने AndroidManifest.xml में गतिविधि में जोड़ें, और आपको पूरा सेट होना चाहिए। Android singleTask or singleInstance launch mode?

+0

के लिए बढ़ाएं, यह काम नहीं करता है। मैंने बहुत कोशिश की लेकिन केवल एक ही कार्य का जिक्र किया, काम नहीं कर रहा है – Sachchidanand

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