2012-02-06 36 views
6

Tengo LoginActivity que comprueba SharedPreferences para los detalles de inicio de sesión a continuación, redirige a HomeActivity y otras actividades después de eso. He puesto el elemento de menú Cerrar sesión en cada una de estas actividades y he usado este código en el botón de cerrar sesión.Ocultar actividad de inicio de sesión

intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 

Cómo ocultar la actividad de inicio de sesión, de modo que cuando el usuario presione el botón Atrás en la pantalla de inicio, cierre la aplicación.

Al igual que cuando abro la aplicación, aparece la pantalla de inicio y cuando presiono el botón para volver a la página normalmente, debería cerrar la aplicación. Pero en mi caso, me lleva a la pantalla de inicio de sesión, que es la primera pantalla que verifica las credenciales del usuario.

No puedo finalizar la actividad de inicio de sesión, de lo contrario, esa solución no funciona.

Soy nuevo en Android. Por favor sugiera algo para resolver este problema.

+3

use android: noHistory = "true" en el menifiesto para la actividad de inicio de sesión. –

+0

Lo intenté, pero elimina la actividad de la pila. – SkyWalker

Respuesta

5

usted debe tratar esto en función de tecla de retroceso de su actividad en el hogar:

onBackpress(){ 
Intent intent = new Intent(mContext, LoginActivity.class); 
intent.putExtra("FLAG", 0); 
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); 
startActivity(intent); 
} 

y en su LoginActivity acaba de hacer:

onNewIntent(Intent intent){ 
    int i = intent.getIntExtra("FLAG", 0); 

    if(i == 0) 
     finish(); 

} 

recordar launchMode para la actividad en menifest debería ser singleTop.

+0

Muestra el error "El método putIntExtra (String, int) no está definido para el tipo Intent" en putIntExtra. y "getData no se puede resolver o no es un campo" en getData. – SkyWalker

+1

He editado mi respuesta, –

+0

gracias hombre! funciona perfecto ¿Puedes explicarme brevemente lo que hemos hecho? – SkyWalker

4

Anula el método Activity.onBackPressed() y luego envía la aplicación a casa a través de un intento.

Desde el SDK:

Una intención con las siguientes categorías le permitirá ir a casa.

ACTION_MAIN con la categoría CATEGORY_HOME - Inicie la pantalla de inicio.

+0

Anulo onBackPressed in Home activity. pero, ¿qué código escribo dentro de la operación para cerrar la aplicación? – SkyWalker

+0

No matas tu aplicación, el ActivityManager lo hará por ti, solo envíale un intento de inicio. – JoxTraex

+0

Mi aplicación solicita un nombre de usuario y una contraseña por primera vez y luego abre directamente la página de inicio. Pero, cuando presiono el botón Atrás, se necesita para iniciar sesión. Por lo tanto, en el botón Atrás de la actividad del hogar, quiero cerrar la aplicación (no matar a la fuerza la aplicación). – SkyWalker

1

Puede anular el evento de presionar el botón con el botón atrás y hacer que cierre la aplicación al presionarlo.

Cuestiones relacionadas