Android: eliminar todas las actividades al cerrar la sesión

Cuando un usuario teclea "Cerrar sesión" dentro de mi aplicación, me gustaría que los llevaran a la actividad de "Inicio de sesión" y eliminen todas las demás actividades en ejecución o detenidas dentro de mi aplicación.

Mi aplicación utiliza Preferencias compartidas para omitir la actividad de "Inicio de sesión" al iniciar si el usuario ha iniciado sesión anteriormente. Por lo tanto, FLAG_ACTIVITY_CLEAR_TOP no funcionará en este caso, porque la actividad de inicio de sesión estará en la parte superior de la pila de actividades cuando se toma al usuario.

3 Solutions collect form web for “Android: eliminar todas las actividades al cerrar la sesión”

Usted podría utilizar un BroadcastReceiver para escuchar una "señal de matar" en sus otras actividades

http://developer.android.com/reference/android/content/BroadcastReceiver.html

En sus Actividades usted registra un BroadcastReceiver

IntentFilter intentFilter = new IntentFilter(); intentFilter.addAction("CLOSE_ALL"); BroadcastReceiver broadcastReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { // close activity } }; registerReceiver(broadcastReceiver, intentFilter); 

A continuación, envía una transmisión desde cualquier lugar de tu aplicación.

 Intent intent = new Intent("CLOSE_ALL"); this.sendBroadcast(intent); 

Para API 11+ puede utilizar Intent.FLAG_ACTIVITY_CLEAR_TASK|Intent.FLAG_ACTIVITY_NEW_TASK como esto:

 Intent intent = new Intent(this, MyActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK|Intent.FLAG_ACTIVITY_NEW_TASK); this.startActivity(intent); 

Se borrarán totalmente todas las actividades anteriores y comenzará una nueva actividad.

En lugar de FLAG_ACTIVITY_CLEAR_TOP use FLAG_ACTIVITY_CLEAR_TASK (API 11+):

Si se establece en una Intención pasada a Context.startActivity (), este indicador hará que cualquier tarea existente que se asociaría con la actividad se borre antes de que se inicie la actividad. Es decir, la actividad se convierte en la nueva raíz de una tarea de otra manera vacía, y todas las actividades viejas están terminadas. Esto sólo se puede utilizar junto con FLAG_ACTIVITY_NEW_TASK.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.