rapido pila historial google descargar como chrome celular buscado borrar anteriormente actividades actividad android android-activity broadcastreceiver activity-finish activity-stack

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 :)



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 ...