2012-10-07 21 views
10

¿Hay alguna forma de que pueda cambiar la actividad que se inicia cuando se inicia la aplicación?Programmatic change launcher activity

+0

Tal vez sólo tienen una actividad despachador que recoge la actividad de destino en 'onCreate'? – nneonneo

+0

posible duplicado de [Definir actividad predeterminada (cuando la aplicación se inicia) programáticamente] (http://stackoverflow.com/questions/6497725/define-default-activity-when-app-starts-programmatically) –

Respuesta

16

Recomendaría tener una actividad de ayuda que siempre se designa como la actividad del iniciador en su manifiesto. Luego, en la etapa de creación de esa actividad puede hacer cualquier determinación que necesite para decidir qué aplicación debe iniciar y luego finalizar la actividad de ayuda. Ejemplo:

En su (actividad lanzador) manifiesta:

<activity android:name=".HelperActivity" ... /> 

Luego, en onCreate de HelperActivity:

@Override 
public void onCreate(Bundle b){ 
    super.onCreate(); 
    //determine what activity you want 
    startActivity(new Intent(this, NewActivity.class); 
    finish(); 
} 
+3

si no quiero muestra una transición aproximada? –

+7

Probablemente puedas llamar a Activity.overridePendingTransition() con 0 para la identificación de la animación en onCreate(), luego también anular finish(), llamar Activity.overridePendingTransition(), luego llamar a super.finish(). – dennisdrew

+3

Para evitar las animaciones y el historial de navegación de pila, utilizo la propiedad 'android: noHistory = "true" en AndroidManifest. –