2011-04-04 20 views
11

Mi aplicación tiene 4 actividades. Si el usuario hace clic en el botón de inicio, la próxima vez que se inicie la aplicación, quiero que comience en la actividad principal, no en la última actividad en la que estuvo. Si la pantalla del teléfono se apaga, mientras la aplicación no se haya cerrado, quiero que se reanude donde lo dejó. ¿Cuál es la forma correcta de hacerlo?Siempre inicie la actividad principal

Respuesta

17

acaba de establecer clearTaskOnLaunch="true" en su declaración manifiesta actividad principal.

http://developer.android.com/guide/topics/manifest/activity-element.html#clear

+0

Lo he hecho pero no parece hacer nada. Si configuro finishOnTaskLaunch para todas las actividades excepto main, hace lo que quiero pero no estoy seguro de que sea la mejor manera. – Roger

+1

Esta opción parece tener errores, intente configurar 'android: finishOnTaskLaunch =" true "' en todas las demás actividades, excepto en la principal. Mantenga el 'clearTaskOnLaunch =" true "' – tbruyelle

+4

Una cosa a tener en cuenta con la propiedad finishOnTaskLaunch es que no funcionará si compila la aplicación al dispositivo directamente desde eclipse. Tienes que instalar el apk de forma manual para que tenga efecto. Pesadilla para depurar –

-1

En el método onResume, especifique qué actividad cargar.

This página de la documentación de Android debería arrojar algo más de luz sobre esto.

0

supongo que se trata de un problema de afinidad y la lista reciente. Así es como lo resolví.

android: taskAffinity = "" com.packageName.Excluded android: excludeFromRecents = "true"

por lo que todas las tareas con la misma afinidad no se mostrarán en la lista reciente. Nota: excludeFromRecents excluirá todas las tareas con la misma afinidad de una vez, por lo que si no establece la afinidad de la actividad, su aplicación se excluirá de la lista reciente (las actividades de la aplicación usan la misma afinidad por defecto si no están establecidas)

0
@Override 
protected void onResume(){ 
    super.onResume(); 
    keeper += 1; 
    if (keeper == 2){ 
     Intent iii = new Intent(MainActivity.this, SplashActivity.class); 
     startActivity(iii); 
     finish(); 
    } 
} 
Cuestiones relacionadas