يتم تشغيل الكثير من الأنشطة عند إطلاق تطبيق Android
-
21-09-2019 - |
سؤال
أنا أؤكد خلق النشاط.
بلدي 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 يمكن أن يكون النشاط هو النشاط الأولي للمهمة ويتم سرده في قاذفة التطبيق العليا.