Android: borra todas las actividades del backstack y termina la actividad actual

Tengo varias actividades en mi aplicación y el flujo es muy complejo. Lo que quiero hacer es, tan pronto como el dispositivo USB está conectado, quiero borrar y terminar las actividades de la pila trasera, a continuación, terminar la actividad actual y el System.exit (0) para cerrar la aplicación.

Ya he implementado el dispositivo de escucha de dispositivos USB. Quiero saber cómo puedo borrar y terminar las actividades de la pila de atrás (si hay alguna, no va a tener ninguna actividad backstack cada vez) y luego terminar la actual.

Además, si mi actividad A está en la parte superior y tiene 2 actividades (B, C) en la pila trasera. Ahora si la actividad A se está ejecutando en segundo plano y usb conectado, sólo la actividad A va a escuchar a la derecha? (Tengo el receptor del usb implementado en cada actividad.)

¿Cómo puedo lograr esto sin mi falla en la aplicación?

Gracias

Hay un método finishAffinity() que terminará la actividad actual y todas las actividades de los padres, pero sólo funciona en Android 4.1 o superior

Fuente

finishAffinity() finalizará esta actividad así como todas las actividades inmediatamente debajo de ella en la tarea actual que tengan la misma afinidad

Si desea para todos los niveles de API
En una de sus actividades

 Intent intent = new Intent(this, YourActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); // this will clear all the stack intent.putExtra("Exit me", true); startActivity(intent); finish(); 

A continuación, en el método YourActivity onCreate (), agregue esto para finalizar la Actividad

 setContentView(R.layout.your_layout); if( getIntent().getBooleanExtra("Exit me", false)){ finish(); return; // add this to prevent from doing unnecessary stuffs } 

En una aplicación que hice, he puesto:

 if(Globals.isExit){ finish(); } 

En cada método onResume () en cada actividad.

Globals es una clase que se declara como una en el manifest.xml. La clase Global tiene un booleano llamado exit.

En el menú de opciones de todas las actividades, incluya una opción de salida que defina Globals.exit como true y las llamadas finish ()

Entonces todas las actividades dejadas inacabadas están terminadas.

No estoy seguro de si necesitaría usar una intención para borrar el backstack o si el acabado lo limpia para usted. Lo siento si estoy equivocado en ese bit.

Lo siento por escribir mal, estoy en un teléfono.

  • Uso del botón backstack y back en viewpager
  • Quitar fragmento medio de FragmentStack
  • SavedInstanceState al restaurar el fragmento de la pila trasera
  • El fragmento que se obtiene de backstack, llama onCreateView () de nuevo
  • ¿Cómo aplastar fragmentos en el backstack que coinciden con su etiqueta de fragmento?
  • Cómo persistir los datos de fragmentos después de las transacciones backstack?
  • Ocultación de las pestañas de la acciónBar con el modo de navegación que afecta negativamente a la fragilidad de fragmento
  • Modificación de la pila trasera en Android
  • Cómo borrar backStack de soporte FragmentManager?
  • Mantenimiento de la aplicación estándar Estado de la pila posterior de la actividad en Android (utilizando el modo de inicio singleTask)
  • Detener fragmento de ser recreado después de reanudar?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.