एप्लिकेशन की प्रारंभिक गतिविधि बदलें


386

मैंने अपने आवेदन का मांस और हिम्मत बनाई है, लेकिन मैं एक अलग गतिविधि जोड़ना चाहता हूं जो शुरुआती बिंदु (एक लॉग-इन स्क्रीन की तरह) होगा।

युगल प्रश्न:

  • 1 मेरे पास गतिविधियों के बीच स्विच करने के तरीके पर काफी सभ्य हैंडल है (इस लेख के आधार पर: http://www.linux-mag.com/id/7498 ) लेकिन मुझे यकीन नहीं है कि एक नया बनाने के बारे में कैसे जाना जाता है ( ग्रहण के साथ)

  • 2 एक बार जब मैंने एक नई गतिविधि बनाई है, तो मैं इसे अपने आवेदन की डिफ़ॉल्ट गतिविधि के रूप में कैसे निर्धारित कर सकता हूं? मुझे लगता है कि मैं सिर्फ कक्षाओं का नाम बदल सकता हूं ... लेकिन क्या इसे संभालने के लिए एक और अधिक सुंदर तरीका है (शायद AndroidManifest.xml)?

जवाबों:


660

हाँ, आप AndroidManifest.xmlफ़ाइल का उपयोग करें । आप वास्तव में अपने एप्लिकेशन मेनिफ़ेस्ट में निर्दिष्ट एक से अधिक लॉन्चर गतिविधि कर सकते हैं। लॉन्चर पर देखी गई गतिविधि को बनाने के लिए आप इन विशेषताओं को अपनी गतिविधि में शामिल करते हैं:

<intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

49
किसी को भी नहीं पता है कि इस पोस्ट के बारे में क्या बात हो रही है, यह आपके प्रोजेक्ट के मूल में AndroidManifest.xml है। एक्लिप्स में आप इसे डबल क्लिक कर सकते हैं और एक्सएमएल को सीधे संपादित करने के लिए सबसे दाईं ओर स्थित टैब पर क्लिक करें।
ऑस्टिन महोनी

3
बहुत धन्यवाद। तो उस इरादे-फ़िल्टर नोड को बाल नोड्स के साथ शामिल करके, जो कि एप्लिकेशन शुरू होने पर लोड करने के लिए पहले एक में जो भी गतिविधि करता है?
काइल

4
@ यह लॉन्चर पेज पर दिखाई देने वाली गतिविधि को सक्रिय कर देगा, आप इस आशय के फ़िल्टर के साथ कई गतिविधियाँ कर सकते हैं, जिससे आपको होमस्क्रीन पर कई आइकन मिलेंगे।
नाथन श्वर्मन

3
आप इस पंक्ति का उल्लेख करते हैं "कहां वास्तव में आपके एप्लिकेशन मेनिफ़ेस्ट में निर्दिष्ट एक से अधिक लॉन्चर गतिविधि हो सकती है"। यदि हम एक से अधिक गतिविधि करते हैं, तो सबसे पहले लॉन्च करेंगे
Tofeeq Ahmad

48
यह सही उत्तर है, लेकिन मैंने अभी कुछ अजीब देखा है: यदि आप प्रारंभिक गतिविधि को किसी और चीज़ में बदलते हैं, और मूल लॉन्च की गई गतिविधि अभी भी मौजूद है, तो एसडीके आपके एप्लिकेशन को लॉन्च नहीं कर पाएगा। किसी तरह यह लॉन्च कॉन्फ़िगरेशन पर गतिविधि का संदर्भ है। इसलिए उपरोक्त परिवर्तन करने के बाद, आपको "रन"> "डिबग कॉन्फ़िगरेशन" पर भी जाने की आवश्यकता है, अपनी परियोजना का निर्माण प्रोफ़ाइल, टैब "एंड्रॉइड" ढूंढें, और लॉन्च की गई गतिविधि को डिफ़ॉल्ट या सही लॉन्च में बदल दें। : "। यह निश्चित नहीं है कि मेरे लिए डिफ़ॉल्ट को क्यों हटा दिया गया था, लेकिन इसे वापस बदलकर काम किया।
zeh

91

अपने प्रोजेक्ट के रूट फ़ोल्डर में AndroidManifest.xml पर जाएं और गतिविधि का नाम बदलें, जिसे आप पहले निष्पादित करना चाहते हैं।

उदाहरण:

<activity android:name=".put your started activity name here"
          android:label="@string/app_name">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

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

47

यदि आप Android Studio का उपयोग कर रहे हैं और आपने लॉन्च करने के लिए पहले एक और गतिविधि का चयन किया होगा ।

पर क्लिक करें Run > Edit configurationऔर फिर सुनिश्चित करें कि लॉन्च डिफ़ॉल्ट गतिविधि चयनित है।

डिफ़ॉल्ट गतिविधि लॉन्च करें


अगर AndroidManifest.xml में लांचर के लिए कोई इरादा फिल्टर नहीं है, तो यह समाधान है।
अमीर फज़वान

1
यह ग्रहण के लिए भी लागू है। सिर्फ आशय फ़िल्टर निर्दिष्ट करना पर्याप्त नहीं है। यदि उपयोगकर्ता द्वारा सीधे एपीके को निष्पादित किया जाता है, तो इरादे फ़िल्टर का उपयोग किया जाता है, लेकिन यदि एपीके द्वारा ग्रहण किया जाता है, तो यह इसे स्थापित करता है, एक विशिष्ट गतिविधि को लॉन्च करने का प्रयास करता है। यह विशिष्ट गतिविधि "प्रोजेक्ट गुण" (प्रोजेक्ट पर राइट क्लिक) -> रन / डीबग सेटिंग्स में निर्दिष्ट है।
इकेर जमादार ज़ुगाज़ा

ये अद्भुत है! टिप के लिए धन्यवाद
राफेल ओलिवेरा

30
 <application
    android:icon="@drawable/YOUR_ICON"    <!-- THIS ICON(IMAGE) WILL BE SHOWN IN YOUR APPS -->
    android:label="MY APP NAME " >    <!-- HERE LABEL(APP NAME) -->
    <activity
        android:name=".application's starting activity"  <!-- (.)dot means current dir, if your activity is in another package then give full package name ex: com.xxx.Activity  -->
        android:label="LABEL FOR ACTIVITY "
        android:screenOrientation="portrait" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

18

नीचे दिए गए निर्देशों का पालन करें:

1 :) अपनी AndroidManifest.xmlफ़ाइल खोलें ।

2 :) गतिविधि कोड पर जाएं जिसे आप नीचे की तरह अपनी मुख्य गतिविधि बनाना चाहते हैं।

जैसे मैं स्पलैशस्क्रीन को मुख्य गतिविधि बनाना चाहता हूं

<activity
    android:name=".SplashScreen"
    android:screenOrientation="sensorPortrait"
    android:label="City Retails">
</activity>

3 :) अब नीचे दिए गए कोड को एक्टिविटी टैग्स के बीच कॉपी करें:

<activity
    android:name=".SplashScreen"
    android:screenOrientation="sensorPortrait"
    android:label="City Retails">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

और यह भी जांच लें कि नई जोड़ी गई लाइनें अन्य गतिविधि टैग के साथ संलग्न नहीं हैं।


17

इसे ठीक करना आसान है।

  • लांचर गतिविधि में परिवर्तन भी डिबग कॉन्फ़िगरेशन में संग्रहीत हैं ।
  • Run > Debug Configurationsसेटिंग पर जाएं और संपादित करें।
  • Intellij में Run > Edit Configurationsचुनिंदा रन डिफ़ॉल्ट गतिविधि के तहत एक समान सेटिंग भी है और यह अब इस फैशन में सेटिंग को नहीं बचाएगा।

14

यह आसान है। ऐसा करें, अपनी Manifestफ़ाइल में।

<activity
    android:name="Your app name"
    android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.HOME" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
</activity>

1
आपको <श्रेणी Android: नाम = "android.intent.category.HOME" को हटाना चाहिए
Behrouz.M

2
<category android:name="android.intent.category.DEFAULT" />, यह वही बात है जो यहाँ काम करती है
1111161171159459134

1
android.intent.category.HOMEएक कियोस्क-मोड स्टाइल एप्लिकेशन में उपयोग के लिए है, जहां डिफ़ॉल्ट लॉन्चर को बदल दिया जाता है। लॉन्चर को बदले बिना इसका उपयोग करने से सिस्टमयूआई की शुरुआत के दौरान संकेत मिलेगा कि किस लॉन्चर का उपयोग करना है। इसे भी देखें: stackoverflow.com/questions/22911156/…
CJBS


5

बस अपने AndroidManifest.xml फ़ाइल पर जाएं और नीचे की तरह जोड़ें

<intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

फिर अपने एंड्रॉइड प्रोजेक्ट को सहेजें और चलाएं।


3

आप इसे जोड़ते हैं जैसे आप android:exported="true"प्रकट फ़ाइल में गतिविधि लॉन्च करना चाहते हैं

 <activity
      android:name=".activities.activity.MainActivity"
      android:windowSoftInputMode="adjustPan"
      android:exported="true"/>
  <activity

इस गतिविधि की ओपन जावा फ़ाइल और राइट क्लिक करें फिर रन 'मुख्य गतिविधि' पर क्लिक करें

या

इस गतिविधि की ओपन जावा फ़ाइल और Ctrl+ Shift+ दबाएँ F10


इसका क्या प्रभाव पड़ता है? बस लॉन्चिंग?
चिया योंगकांग

2

हाल ही के एक प्रोजेक्ट में मैंने AndroidManifest.xml में डिफ़ॉल्ट गतिविधि बदल दी है:

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

<activity android:name=".MyAppDisplay">
    <intent-filter>
        <action android:name="android.intent.activity.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

एंड्रॉइड स्टूडियो 3.6 में; ऐसा लगता है टूट गया। मैंने उदाहरण के अनुप्रयोगों में इस तकनीक का उपयोग किया है, लेकिन जब मैं इस वास्तविक दुनिया के अनुप्रयोग में इसका उपयोग करता हूं तो यह फ्लैट हो जाता है। IDE एक बार फिर रिपोर्ट करता है:

ऐप चलाने में त्रुटि: डिफ़ॉल्ट गतिविधि नहीं मिली।

IDE ने अभी भी टूलबार में "रन ऐप" स्पेस में कॉन्फ़िगरेशन त्रुटि दिखाई (इस स्क्रीनशॉट में पीला तीर)

"रन ऐप" कॉन्फ़िगरेशन में त्रुटि

इस त्रुटि को ठीक करने के लिए मैंने प्रोजेक्ट के कई रीबिल्ड्स, और अंत में फाइल की कोशिश की है >> "अवैध कैश / पुनः आरंभ करें" । इससे कोई फायदा नहीं हुआ। एप्लिकेशन को चलाने के लिए मुझे "संपादन संपादित करें" और डिफ़ॉल्ट गतिविधि के बजाय विशिष्ट गतिविधि पर इंगित करना चाहिए:

कॉन्फ़िगरेशन संवाद बॉक्स संपादित करें

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.