¿Cómo cerrar todas las actividades de mi aplicación?

Tengo una aplicación con varias actividades, por ejemplo:

Actividad 1 -> Actividad 2 -> Actividad 3 -> Actividad 4

Y me gustaría cerrar todas las actividades de cualquier actividad y volver al teléfono de casa.

Puedes lograr eso usando BroadcastReceivers :

  • Cree una BaseActivity como esta:

 public class BaseActivity extends Activity { private KillReceiver mKillReceiver; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mKillReceiver = new KillReceiver(); registerReceiver(mKillReceiver, IntentFilter.create("kill", "spartan!!!")); } @Override protected void onDestroy() { super.onDestroy(); unregisterReceiver(mKillReceiver); } private final class KillReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { finish(); } } } 

  • Haga que sus actividades amplíen esa BaseActivity .
  • Siempre que quieras limpiar la stack:

 Intent intent = new Intent("kill"); intent.setType("spartan!!!"); sendBroadcast(intent); 

Puede borrar todas las actividades anteriores utilizando los siguientes indicadores:

 intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK); 

Espero que te ayude !

Abra AndroidManifest.xml y encuentre la actividad a la que le gustaría regresar y agregue el siguiente atributo

 android:launchMode="singleTask" 

Por ejemplo, la clase HomeActivity podría tener esto en el manifiesto de Android

  

En cualquier punto, puede cerrar todas las actividades encima de esta mediante el uso de startactivity de la manera estándar, por ejemplo

 startActivity(new Intent(this, HomeActivity.class)); 

Si normalmente pasa los extras a la intención, no hay necesidad de hacer esto, ya que volverá en el estado en que estaba antes, e incluso va acompañado de una animación como presionar el botón Atrás.

Y me gustaría cerrar todas las actividades de cualquier actividad

Eso es hostil al usuario en Android . Por favor, no hagas eso.

y vuelve al teléfono de tu casa

No tengo idea de lo que esto significa.

Si el usuario presiona INICIO, sus actividades pueden y deben permanecer en la RAM por un tiempo, en caso de que el usuario regrese a su aplicación.

Si con “teléfono de casa” quiere decir que una de sus actividades es el “hogar” de la aplicación, y desea volver a esa actividad cuando el usuario presiona algún botón u opción del menú de opciones, llame a startActivity () con un Intento que:

  • identifica la actividad a la que desea regresar
  • tiene FLAG_ACTIVITY_CLEAR_TOP|FLAG_ACTIVITY_SINGLE_TOP en las banderas, para indicar que desea llevar adelante esa actividad y deshacerse de las otras actividades que el usuario había lanzado anteriormente