2011-01-06 7 views
25

Estoy escribiendo una aplicación de Android que tiene una actividad principal y una subactividad. Cuando instalo la aplicación en mi teléfono para probarla, obtengo dos iconos en lugar de uno. El primer icono es para la actividad principal y el segundo es para la subactividad. No quiero/necesito un ícono para la subactividad.Desarrollo de aplicaciones para Android: se crean dos iconos y solo necesito uno

¿Alguien sabe cómo desactivar esto en mi código de aplicación, de modo que solo se instale el icono de la actividad principal? ¡Cualquier información que pueda proporcionar es muy apreciada!

Gracias, MobiKnow

+1

1 He tenido el mismo problema, sólo me ha quitado el <-filtro intención> de la segunda actividad y el problema está resuelto (tuve en splash y pantalla principal) –

Respuesta

46

¿Su aplicación de lista de manifiesto un filtro bajo su intención subactividad que coincide con el lanzador principal?

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

Asegúrate de que tu subactividad no esté filtrando para estos propósitos.

Editar: Para que quede muy claro, asegúrese de que las líneas anteriores no están enumeradas en su subactividad. Ese filtro de intención le permite al sistema Android saber que tiene la intención de que aparezca como un punto de entrada a su aplicación.

+0

Me gustaría agregar un atajo para la subactividad solamente, y requiere el . Entonces ahora tengo 2 iconos de aplicaciones. ¿Cómo podría desactivar el ícono de subactividad (no el acceso directo)? – Silentbang

+0

¿Cómo ingresarías a esta actividad sin ícono? SI lo va a iniciar a través de la intención de ADB, por ejemplo, es suficiente agregar android: exported = "true" a su actividad. – PSIXO

2

Usted tiene

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

junto con

android:icon="@drawable/icon.png" 

conjunto para ambas actividades.

Lo que eso significa es que este es un icono de iniciador, colócame en la pantalla de inicio. Solo establezca los de la actividad que desee en la pantalla de inicio.

3

Voy a adivinar que en su AndroidManifest.xml, tiene ambas actividades que tienen el filtro de LANZAMIENTO itnent. Quítalo de la segunda actividad y deberías configurarlo.

0
<intent-filter android:icon=”drawable resource” android:priority=”Integer” /intent-filter> 

Las prioridades se establecen para el componente primario. Esta configuración puede ayudarlo a configurar el icono principal para el desarrollo de su aplicación Android.

10

tenemos el mismo problema, pero me fijo esta manera antes de mi código de abajo en el manifiesto Aviso

<application 
     android:debuggable="true" 
     android:allowBackup="true"> 
     <activity  android:name=".SplashActivity"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <activity 
      android:name="com.noupdate.apptest_noupdate.MainActivity" 
      android:icon="@drawable/ic_launcher" 
      android:label="@string/app_name"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
    </application> 

que en el SplashActivity dentro de la intención es el código

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

Sólo eliminado la categoría

<category android:name="android.intent.category.LAUNCHER" /> 

Así que después de eliminar el categoría de filtro intención en chapoteo que no se ha instalado dos icono de la aplicación, pero sólo uno para el código principal será como este aviso que se elimina la categoría de filtro intención

<application 
     android:debuggable="true" 
     android:allowBackup="true"> 
     <activity  android:name=".SplashActivity"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

      </intent-filter> 
     </activity> 
     <activity 
      android:name="com.noupdate.apptest_noupdate.MainActivity" 
      android:icon="@drawable/ic_launcher" 
      android:theme="@android:style/Theme.NoTitleBar" 
      android:label="@string/app_name"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
    </application> 

lo que realmente ayuda

1

estaba buscando respuesta exactamente a la misma preguntaParece que lo único que se necesita (además de las recomendaciones para eliminar el filtro de intención MAIN y LAUNCHER) es reconstruir tu proyecto: eso limpiará las cosas y en el siguiente lanzamiento vi un solo icono en mi dispositivo (solo ejecuté la aplicación en el dispositivo después de los cambios no ayuda).

0

si alguien se encuentra con este problema con Pebble SDK. Noté que PebbleKit Androidmanifest.xml contiene también una actividad LAUNCHER. Esto es lo que me causó esto. Solo elimina esta parte. No afectará la funcionalidad de Pebble.

8

Crea dos iconos de aplicaciones porque debe haber agregado el filtro dado a dos de sus actividades. Ver manifiesto

<category android:name="android.intent.category.MAIN" /> 

quitar la instrucción arriba del otro. Entonces, ya puedes irte.

2

Al igual que en las otras respuestas,

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

era el culpable. Sin embargo, en mi manifiesto solo tenía una actividad con ese filtro de intención. Como resultado, estoy usando una biblioteca que construí y tiene una actividad declarada en su manifiesto que usa ese filtro de intención. Por lo tanto, en resumen, asegúrese de que el manifiesto y las dependencias de su aplicación, en su caso, solo tengan una actividad con el filtro de intención.

Cuestiones relacionadas