سؤال

عندما أقوم بتثبيت طلبي على جهاز أو محاكي ، يظهر عدة مرات في قائمة التطبيقات ، في حالتي أحصل على 4 أيقونات تعرض اسم التطبيق الخاص بي.

يبدو أن كل رمز يمثل نشاطًا ، وبما أن طلبي يحتوي على 3 علامات تبويب (مع أنشطة) ، فإن الأيقونات الثلاثة الأولى في قائمتي تنتقل إلى نشاط معين ، والأيقونة الرابعة تأخذني إلى التطبيق نفسه

هذا هو بياني

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.jameselsey"
      android:versionCode="1"
      android:versionName="1.0">

    <uses-sdk android:minSdkVersion="7" />  
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
    <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"></uses-permission>
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>    
    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
    <uses-permission android:name="android.permission.READ_CONTACTS" />
    <uses-permission android:name="android.permission.WRITE_CONTACTS" />

    <application    android:icon="@drawable/icon" 
                    android:label="@string/app_name" 
                    android:name="com.jameselsey.domain.GlobalState"
                    android:theme="@android:style/Theme.NoTitleBar">

        <activity android:name=".DefaultActivity"
                  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=".MyContactsActivity"
                  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=".MyMapsActivity"
                  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=".OptionsActivity"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <uses-library android:name="com.google.android.maps" />
    </application>    
</manifest> 

ما الذي يمكنني فعله للحصول على أيقونة واحدة فقط لتططيحي على جهازي وليس 4؟

شكرًا

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

المحلول

لقد تم تقديم الجواب بالفعل لكنني فقط أطلعها. في Java ، سيبدأ التطبيق بالفئة التي تحتوي على رئيسي الطريقة وسيكون ذلك في الأساس غير مرتبطة نقطة الدخول إلى التطبيق بأكمله.

في Android ، يمكن أن تلاحظ أنه لا توجد طريقة رئيسية داخل فئة النشاط الخاصة بك. هنا نستخدم ملف البيان لفعل الشيء نفسه. يمكن أن يكون للتطبيق نقاط دخول متعددة و "android.intent.action.MAIN" يشير إلى أن هذا النشاط يجب أن يكون نشاط البداية الرئيسي و LAUNCHER تقول الفئة أنه يجب سرد نقطة الدخول هذه في مشغل التطبيق. بمجرد أن تصنع نشاطًا LAUNCHER يوفر Android أيقونة التطبيق واسمها ويجب أن لاحظت أن النقر على كل من الرموز الأربعة في قضيتك سيأخذك إلى 4 أنشطة مختلفة.

خلاصة القول هي إذا كان تطبيقنا لا يتطلب نقاط إدخال متعددة ، فلا يتعين عليك استخدامه.

نصائح أخرى

لأن لديك 4 أنشطة مع

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

هذا يضيف أيقونة قاذفة لنشاطك.

إزالة intent-filter من الأنشطة الثلاثة الأخيرة

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