2010-08-20 23 views
47

Mi aplicación para Android tiene 2 actividades. Una pantalla de inicio de sesión y una pantalla de búsqueda. Cuando despliego la aplicación en el emulador o en mi dispositivo, veo 2 iconos para la misma aplicación. Cuando hago clic en el icono 1, se abre la pantalla 1 (pantalla de inicio de sesión) y cuando hago clic en el icono 2, se abre la pantalla 2 (pantalla de búsqueda). Por lógica cuando inicio sesión, debería mostrar la pantalla de búsqueda. No estoy seguro de si estoy cometiendo el error, sería de ayuda si alguien puede indicarme la dirección correcta.Actividades de la aplicación para Android instaladas como iconos múltiples

Saludos, Aravind. C

Respuesta

71

su archivo de manifiesto sólo debe tener esta línea en la actividad que desea tener un icono:

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

Sobre la base de su descripción, parece que ambas actividades tienen esta línea.

+6

'MAIN' no es una categoría; es una acción. De manera más general, no incluya un '' para una actividad en el manifiesto a menos que lo necesite. Para aplicaciones simples, solo la actividad que necesita un ícono en el iniciador debe tener un ''. – CommonsWare

+0

Hola Aaron, Muchas gracias por la rápida reversión. Sí, este era el problema y la aplicación funciona según lo previsto. Gracias de nuevo. Saludos, Aravind. C –

+2

También debe verificar el manifiesto para proyectos de biblioteca referenciados –

16

En su archivo de mainfest cuando tiene la etiqueta siguiente en dos etiquetas de actividades diferentes en el momento, la aplicación de Android parece estar instalada dos veces.

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

Tengo el mismo problema porque incluí una biblioteca como dependencia de proyecto, cuyo AndroidManifest.xml contenía una definición de filtro de intención -> ¡Lo eliminé y todo comenzó a funcionar correctamente! – notsoux

+1

En realidad, tengo esto en dos actividades diferentes, porque quiero que cada una se comporte como una aplicación independiente. Funciona según lo deseado. Intenté con "CREATE_SHORTCUT", pero el atajo no permanece en la pantalla de inicio. –

2

El comentario hecho por @Adrian C en su respuesta resolvió nuestro problema.

El archivo de manifiesto de nuestra aplicación principal solo tenía una etiqueta intent-filter que especificaba solo una actividad como actividad de inicio para la aplicación.

así que tuve que mirar más profundamente ...

Se incluyeron proyectos de biblioteca (por suerte escritos por nosotros) y el archivo de manifiesto de uno de los proyectos de biblioteca tenía una etiqueta intent-filter en su actividad especifica que la actividad como el lanzador actividad.

Cuando incluimos a continuación, que el proyecto de la biblioteca en nuestra aplicación principal (que tiene su propia intent-filter especificando una actividad lanzador), el código fuente completo vio dos intent-filter etiquetas que especifican dos actividades como actividades de lanzamiento y por lo tanto se crearon dos iconos de aplicaciones.

Cuando eliminamos el intent-filter especificando una actividad de iniciador en el proyecto de la biblioteca, el segundo icono del iniciador de la aplicación desapareció.

Cuestiones relacionadas