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
:
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(); } } }
BaseActivity
. 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:
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