es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Android – Finalización muy lenta de una actividad.

Tengo un botón “Cerrar” que cierra la aplicación.
He probado 2 métodos pero ambos son muy lentos.
1. Finalizando la actividad:

activity.finish()

2. Enviando la intención de la página de inicio (desde aquí)

Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(startMain);

¿Cómo puedo cerrar la actividad o enviarla al segundo plano más rápido?
¿Por qué hacer clic en el botón “inicio” es mucho más rápido que enviar la intención ACTION_MAIN?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para cerrar la actividad más rápidamente, puedes probar las siguientes opciones:

    1. Utiliza finishAffinity() en lugar de activity.finish(). Este método finalizará todas las actividades de la tarea actual y también limpiará la pila de retroceso.
    2. Utiliza moveTaskToBack(true), esto moverá la actividad al fondo, pero seguirá ejecutándose. Este método no destruirá la actividad, sino que la ocultará.

    Hacer clic en el botón “inicio” es mucho más rápido que enviar la intención ACTION_MAIN, porque el botón “inicio” es un botón de interfaz de usuario del sistema y es manejado por el iniciador. El iniciador es una aplicación del sistema y tiene una prioridad más alta que la aplicación actual. Cuando haces clic en el botón “inicio”, el iniciador determina qué hacer a continuación, y puede hacerlo muy rápidamente porque ya ha cargado todos los recursos necesarios en la memoria. El iniciador puede mover la actividad actual al fondo, o puede iniciar una nueva tarea o cambiar a otra tarea. Por otro lado, cuando envías la intención ACTION_MAIN, la actividad actual debe detenerse y la nueva actividad debe iniciarse. Este proceso lleva más tiempo que simplemente mover la actividad actual al fondo.

Comments are closed.