2012-01-11 19 views
6

tengo una aplicación que contiene dos actividades conAplicación con 2 actividades de lanzadores

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

en el manifiesto. Hice esto para que haya 2 entradas separadas en el cajón de la aplicación. Funciona correctamente con respecto al cajón de la aplicación tal como está.

Mi pregunta surge durante la instalación. Después de instalar una aplicación con solo una actividad MAIN/LAUNCHER, la última página tiene un botón abierto que iniciará la aplicación que acaba de instalar. Con mi aplicación, este botón de apertura está atenuado. Supongo que es porque no sabe cuál de las dos actividades me gustaría que se ejecute si se presionó el botón de abrir. ¿Hay algo que pueda establecer en el manifiesto (o en otro lugar) para especificar qué actividad me gustaría que el botón de abrir inicie al final del proceso de instalación? Estoy pensando que debe haber algo que pueda establecer, porque cuando instalo la aplicación a través de adb con eclipse, se inicia una de las dos actividades y, afortunadamente, es en realidad la que me gustaría que se lanzara.

Respuesta

7

Esta pregunta:

After downloading an application with two Launcher components from the Marketplace, clicking "Open" will cause a crash

me ayudó a conseguir que funcione como quería. La clave estaba añadiendo:

<activity-alias android:name="com.android.internal.app.ResolverActivity" 
      android:targetActivity=".Main" android:exported="true"> 
    </activity-alias> 

al manifiesto y cambiando ".Main" para hacer referencia a la actividad que desea comenzar con el botón de apertura al final de la instalación.

Tenga en cuenta que la etiqueta de actividad-alias debe ser declarada después de la etiqueta de la actividad que usted se refiere (en el xml).

0

Yo sugeriría que usted tenga 1 actividad que lee preferencias y decide proceder con la actividad actual o abrir otra actividad.

Si no desea iniciar una nueva actividad, trate de inflar fragmento apropiado.

+1

Sí se puede, que sólo va a mostrar como iconos separados en la pantalla principal. – harism

+1

Aunque quiero que haya dos iconos separados en el cajón de la aplicación. – FoamyGuy

1

es muy recomendable por los documentos Android que si usted va a tener múltiples actividades de lanzamiento desde la pantalla de inicio, que cada uno se lanzará dentro de su propia tarea. Eche un vistazo a this article para más información.

Al hacerlo, cada tarea tendrá un valor taskAffinity separada. I cree que la tarea que se establece con la misma afinidad que el paquete de la aplicación es la que el instalador seleccionará para iniciar.

+0

Gracias por el enlace. Traté de establecer las dos actividades del iniciador en diferentes afinidades de la tarea y establecer la afinidad de la tarea en el elemento de la aplicación como el mismo de la actividad que deseo iniciar después de la instalación. Pero aún sin suerte, el botón de abrir está atenuado. – FoamyGuy

Cuestiones relacionadas