2010-10-30 33 views
5

Cuando instalo mi aplicación en un dispositivo o emulador aparece varias veces en el menú de aplicaciones, en mi caso obtengo 4 íconos que muestran mi nombre de aplicación.¿Por qué mi aplicación aparece 4 veces en mi dispositivo?

Parece que cada icono representa una actividad, y ya que mi aplicación contiene 3 pestañas (con actividades) los 3 primeros iconos en mi menú de ir a una actividad en particular, y el cuarto icono me lleva a la propia aplicación

Ésta es mi manifiesto

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

¿Qué puedo hacer yo sólo para tener un icono para mi aplicación en mi dispositivo y no 4?

Gracias

Respuesta

6

La respuesta ya ha sido proporcionado, pero sólo estoy informando a ella. En Java, la aplicación comenzará con la clase que contiene el método principal y que básicamente será un único punto de entrada a toda la aplicación.

En Android, podría haber notado que no hay un método principal dentro de su clase de actividad. Aquí usamos el archivo Manifest para hacer lo mismo. Una aplicación puede tener múltiples puntos de entrada y "android.intent.action.MAIN" indica que esta actividad debería ser la principal actividad de inicio y la categoría LAUNCHER dice que este punto de entrada debe aparecer en el iniciador de la aplicación. Una vez que realice una actividad como LAUNCHER, android le proporciona un icono y nombre de aplicación y debe haber notado que al hacer clic en cada uno de los 4 iconos en su caso, lo llevará a 4 actividades diferentes.

La conclusión es que si nuestra aplicación no requiere puntos de entrada múltiples, no tiene que usarla.

+0

Respuesta más descriptiva, pero +1 para todos los demás aswel. Gracias :) – Jimmy

10

Debido a que tiene 4 actividades con

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

que añade un icono de inicio de su actividad.

+0

¡Gracias, esto me ayudó mucho! –

5

quitar intent-filter de los últimos 3 actividades

Cuestiones relacionadas