سؤال

أنا أؤكد خلق النشاط.

بلدي missest.xml مثل هذا:

<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".FirstActivity"
          android:label="@string/app_name">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>
<activity android:name=".SecondActivity"
          android:label="@string/app_name">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>
 <activity android:name=".ThirdActivity"
          android:label="@string/app_name">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

يمكنك رؤية الممتلكات action android:name= الممتلكات "android.intent.action.MAIN" وcategory android:name= هو "android.intent.category.LAUNCHER" لجميع الأنشطة.

عندما يبدأ التطبيق ، فإنه يستدعي النشاط الأول. ثم يدعو النشاط عديم الجدوى مثل النشاط الثالث أو النشاط الثاني.

في هذه الحالة ، هو بلدي manifest.xml صيح؟ أو هل أحتاج إلى تعيين خاصية أخرى على النشاط الثاني والثالث؟ إذا كان الأمر كذلك ، فما هذا؟

انا اتعجب manifest.xml الملف مناسب لحالتي. يرجى تقديم النصيحة.

هل كانت مفيدة؟

المحلول

جرب هذا التكوين:

<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".FirstActivity" android:label="@string/app_name">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>
<activity android:name=".SecondActivity" android:label="@string/app_name">
    <intent-filter>
    </intent-filter>
</activity>
 <activity android:name=".ThirdActivity" android:label="@string/app_name">
    <intent-filter>
    </intent-filter>
</activity>

نصائح أخرى

فكر في Intent كرسالة تستخدم لبدء ملف Activity لفعل شيء ما. حتى أتمكن من إنشاء Intent لعرض صفحة ويب وتطبيق مع نشاط يعرف كيفية عرض صفحة ويب - على الأرجح المتصفح - يمكن أن يعرض نيته على أنها فعل عليها.

أنت تخبر Android ما هي الأنشطة التي يمكن أن تعمل على أي نوايا باستخدام <intent-filter> جزء من بيانك.

ال MAIN Intent هو واحد خاص. يتم إرسال هذا إلى تطبيق عند إطلاقه ويقول بشكل أساسي "اذهب!" لذلك Activity التي يتم عرضها أولاً يحتاج إلى اعتراض هذا من خلال تحديدها بشكل صحيح <intent-filter>.

كما كان لديك جميع الأنشطة الثلاثة مع MAIN في مرشحهم ، استجابوا جميعًا لطلب بدء طلبك. لذلك يجب أن يكون لديك ذلك <intent-filter> فقط ل FirstActivity.

واحدة من المشاكل الأخرى في استخدام<category android:name="android.intent.category.LAUNCHER" /> لأكثر من نشاط واحد هو أن قائمة قاذفة الهاتف ستعرض أكثر من أيقونة ...

من المستندات:

category_launcher يمكن أن يكون النشاط هو النشاط الأولي للمهمة ويتم سرده في قاذفة التطبيق العليا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top