Pergunta

Quando instalo meu aplicativo em um dispositivo ou emulador, ele aparece várias vezes no menu Apps, no meu caso, recebo 4 ícones mostrando o nome do meu aplicativo.

Parece que cada ícone está representando uma atividade e, como meu aplicativo contém 3 guias (com atividades), os três primeiros ícones do meu menu vão para uma atividade específica, e o quarto ícone me leva ao próprio aplicativo

Este é o meu manifesto

<?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> 

O que posso fazer para ter apenas um ícone para o meu aplicativo no meu dispositivo e não 4?

Obrigado

Foi útil?

Solução

A resposta já foi fornecida, mas estou apenas informando. Em Java, o aplicativo começará com a classe que contém o a Principal método e isso basicamente será um solteiro ponto de entrada para todo o aplicativo.

No Android, você poderia ter notado que não existe um método principal dentro da sua classe de atividades. Aqui usamos o arquivo manifesto para fazer o mesmo. Um aplicativo pode ter vários pontos de entrada e "android.intent.action.MAIN" indica que essa atividade deve ser a principal atividade inicial e o LAUNCHER A categoria diz que esse ponto de entrada deve ser listado no lançador de aplicativos. Depois de fazer uma atividade como LAUNCHER O Android fornece um ícone e nome do aplicativo e você deve ter notado que clicar em cada um dos 4 ícones no seu caso o levaria a 4 atividades diferentes.

A linha inferior é se nosso aplicativo não exigir vários pontos de entrada, você não precisará usá -lo.

Outras dicas

Porque você tem 4 atividades com

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

Isso adiciona um ícone do lançador para sua atividade.

remover intent-filter Das últimas 3 atividades

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top