android - pila - mi actividad google borrar historial descargar
¿Cuál es la forma correcta de borrar las actividades/actividades de fondo de la pila? (3)
como dice el título de las preguntas, necesito saber cuál es la mejor manera de "eliminar" / destruir / finalizar una actividad que está en algún lugar en el medio de la pila y actualmente en modo pausa (no instancias específicas, sino clases derivadas específicas).
por ejemplo:
si el estado actual de la pila es así:
ActivityD <-- top of the stack, currently forground
ActivityC
ActivityA
ActivityC
ActivityA
una solicitud para "borrar" todas las instancias de ActivityC provocaría que la pila fuera así:
ActivityD <-- still top of the stack, currently forground.
ActivityA
ActivityA
No quiero hacer eso depende del modo de inicio de la actividad o de los indicadores de intención. Sé cómo usarlos y sus beneficios.
lo que sé actualmente que puedo hacer es enviar una transmisión que escucharía todas las actividades que necesitaban ser destruidas, y llamar a Activity.finish () cuando reciba la transmisión.
eso está funcionando, pero requiere que los receptores se registren incluso cuando su actividad de hospedaje está pausada, y no estoy seguro de que el método "finish ()" haya sido llamado desde la actividad pausada sea algo correcto.
¿es correcto llamar al método Activity.finish () de la actividad reanudada?
¿es correcto registrar el receptor en el método OnCreate () y anular el registro de OnDestroy ()?
¿es correcto manejar la transmisión de la actividad reanudada y llamar a finish () desde ese punto?
¿Hay una "forma Android" o alguna API que no conozca para borrar las actividades de la pila?
gracias por adelantado
También tuve el mismo problema. Lo que hice fue, mantuve una lista de arreglos estáticos, y cada vez que solía pasar de una actividad a otra, en el método de nueva actividad onCreate (), añadí el objeto de la actividad actual en esa lista como esta:
SomeClass.addActivity(CurrentActivity.this);
Agregué la declaración anterior en cada actividad.
The addActivity ():
public void addActivity(final Activity activity) {
activityList.add(activity);
}
Y cuando quise limpiar la pila, llamé:
public boolean clearStack() {
for (Activity activity : activityList) {
activity.finish();
}
activityList.clear();
return (activityList.isEmpty());
}
De esta forma, borré mi pila de actividades.
Gracias :)
Cree un receptor de difusión personalizado y regístrelo en cada actividad que se pueda activar en el evento que elija. en onReceiveMethod de cada actividad (puede ser seleccionado) simplemente llame a finish (). En esto tus actividades serán eliminadas de la pila. Además, puede visitar esto para obtener más ayuda: al cerrar la sesión, borre la pila del historial de actividad, impidiendo que el botón "Atrás" abra las actividades registradas solo
Intent myintent = new Intent(YourCurrentActivity.this, YourNextActivitys.class);
myintent2.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(myintent2);
finish();
Creo que esta es la forma correcta de borrar todas las actividades anteriores ...