2012-10-07 16 views
10

क्या कोई तरीका है कि एप्लिकेशन शुरू होने पर लॉन्च की गई गतिविधि को बदल सकता है?प्रोग्रामेटिक रूप से लॉन्चर गतिविधि बदलें

+0

हो सकता है कि सिर्फ एक डिस्पैचर गतिविधि कि 'onCreate' में लक्ष्य गतिविधि उठाता है? – nneonneo

+0

संभावित डुप्लिकेट [डिफ़ॉल्ट गतिविधि को परिभाषित करें (जब ऐप शुरू होता है) प्रोग्रामेटिक रूप से] (http://stackoverflow.com/questions/6497725/define-default-activity-when-app-starts-programmatically) –

उत्तर

16

मैं एक सहायक गतिविधि रखने की अनुशंसा करता हूं जो हमेशा आपके मैनिफेस्ट में लॉन्चर गतिविधि के रूप में नामित होता है। फिर, उस गतिविधि के निर्माण में आप यह तय करने के लिए जो भी दृढ़ संकल्प करना चाहते हैं, वह ऐप शुरू करने के लिए क्या कर सकता है और फिर सहायक गतिविधि को समाप्त कर सकता है। उदाहरण:

अपने प्रकट (लांचर गतिविधि) में:

<activity android:name=".HelperActivity" ... /> 

फिर, HelperActivity के onCreate में:

@Override 
public void onCreate(Bundle b){ 
    super.onCreate(); 
    //determine what activity you want 
    startActivity(new Intent(this, NewActivity.class); 
    finish(); 
} 
+3

अगर मैं नहीं चाहता एक मोटा संक्रमण दिखाओ? –

+7

आप क्रिएट() में एनीमेशन आईडी के लिए 0 के साथ गतिविधि.overridePendingTransition() को 0 पर कॉल कर सकते हैं, फिर फिनिश() को ओवरराइड भी कर सकते हैं, Activity.overridePendingTransition() पर कॉल करें, फिर super.finish() पर कॉल करें। – dennisdrew

+3

स्टैक नेविगेशन के एनिमेशन और इतिहास से बचने के लिए मैं AndroidManifest में केवल 'एंड्रॉइड: noHistory = "true" प्रॉपर्टी का उपयोग करता हूं। –

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