2010-05-26 11 views
9

मेरे पास गतिविधियां ए और बी हैं। ए लांचर इरादा फ़िल्टर वाला एक है (यानी वह गतिविधि जो शुरू होती है जब हम होम स्क्रीन पर ऐप आइकन पर क्लिक करते हैं)।एंड्रॉइड: लॉन्चर को हमेशा बाल गतिविधि के बजाय मुख्य गतिविधि कैसे खोलें? (या अन्यथा)

startActivity(new Intent(A.this, B.class)) का उपयोग करके बी लॉन्च करता है।

उपयोगकर्ता बी गतिविधि खुला होता है, और फिर पृष्ठभूमि में अपने आवेदन रखा, और बाद में अपने आवेदन की प्रक्रिया मार दिया जाता है, जब उपयोगकर्ता फिर से अपने आवेदन शुरू होता है, बी ए

इस के बजाय खोला है मेरे ऐप में एक बल बंद हो गया, क्योंकि ए वह गतिविधि है जो मेरे ऐप की ज़रूरतों को शुरू करती है, और जब बी ने अनियमित संसाधनों तक पहुंचने का प्रयास किया, तो बी क्रैश हो गया।

क्या आपके पास कोई सुझाव है कि मुझे इस स्थिति में क्या करना चाहिए?

उत्तर

10

अच्छी तरह से आपको वास्तव में गतिविधि बी को अपने संसाधनों को प्रारंभ करना चाहिए। लेकिन आप गतिविधि के लिए अपने मेनिफेस्ट में android:clearTaskOnLaunch="true" डाल सकते हैं ए लॉन्चर हमेशा उस गतिविधि पर जाता है।

+0

हमेशा नौकरी हमेशा स्पष्ट नहीं करता है। मैंने अपनी अन्य गतिविधियों को लॉन्च किया: intent.setFlags (Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NO_HISTORY); – Warpzit

0

क्या आपने इरादा बनाते समय ध्वज FLAG_ACTIVITY_NEW_TASK सेट करने का प्रयास किया है। अपने मामले में कृपया startActivity(new Intent(A.this, B.class).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK))

+0

क्षमा करें, लेकिन यह समझाने के लिए बहुत दयालु होगा कि एथिस, बीक्लास द्वारा आपका क्या मतलब है? वास्तविक वाक्यविन्यास क्या होगा? बी को आम तौर पर "com.mypackage.FOO" (या जिसे मैंने इसे मैनिफेस्ट में बुलाया) के रूप में व्यक्त किया है, और ए? मुझे यह भी यकीन नहीं है कि आपके द्वारा ए का मतलब क्या है। मैंने कोशिश की ... नया इरादा (यह, "com.mypackage.FOO" .getClass()। SetFlags ... लेकिन यह स्पष्ट रूप से काम नहीं करता था (मैं बस कोशिश कर रहा था यह उचित परिश्रम के लिए) –

+0

एथिस आपके बयान में इसका संदर्भ देता है। बीक्लास उस वर्ग को संदर्भित करता है जिसे आप आमंत्रित करना चाहते हैं। getclass() किसी ऑब्जेक्ट के रनटाइम क्लास को वापस कर देगा, इस मामले में मुझे लगता है कि मैं बेस क्लास को वापस करें। – Vamsi