Почему мое приложение появится 4 раза на моем устройстве?

StackOverflow https://stackoverflow.com/questions/4061047

Вопрос

Когда я устанавливаю свое приложение на устройство или эмулятор, он выглядит несколько раз в меню приложений, в моем случае я получаю 4 значки, показывающую мое имя приложения.

Кажется, что каждый значок представляет собой деятельность, и поскольку мое приложение содержит 3 вкладка (с деятельностью) первые 3 значки в моем меню, переходят к конкретной деятельности, а 4-й значок ведет меня к себе приложение

Это мой манифест

<?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 вы могли бы заметить, что внутри вашего класса активности нет основного метода. Здесь мы используем файл mainest, чтобы сделать то же самое. Приложение может иметь несколько точек входа и "android.intent.action.MAIN" указывает на то, что эта деятельность должна быть основной исходной деятельностью и LAUNCHER Категория говорит, что эта точка входа должна быть указана в приложении запуска. Как только вы сделаете деятельность как LAUNCHER Android предоставляет значок приложения и имени его, и вы, должно быть, заметили, что нажатие на каждой из 4 значков в вашем случае приведет вас к 4 различным действиям.

Суть в том, что наше приложение не требует нескольких точек входа, вам не нужно его использовать.

Другие советы

Потому что у вас есть 4 действия с

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

Это добавляет значок запуска для вашей деятельности.

Удалить intent-filter из последних 3 мероприятий

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top