¿Cuál es la forma correcta de cerrar aplicaciones en Android?

Soy nuevo en la plataforma Android, y esta es probablemente una pregunta tonta, pero...

¿Cómo se cierra una aplicación?

Cuando estoy en una aplicación y quiero salir, solo hago clic en "Inicio" y sigo adelante, pero acabo de instalar una aplicación del Administrador de tareas y noté que todo sigue funcionando.

¿Hay alguna forma de salir de las aplicaciones? ¿O necesito usar el Administrador de tareas cada vez que salgo de algo?

Respuestas (6)

Si sale de la aplicación usando el BACKbotón, llamará onDestroy()a la Actividad actual. Si lo presiona HOME, solo llamará onPause()
. más rápido en el futuro.

No recomendaría usar una de esas aplicaciones para eliminar tareas. Android está diseñado para mantener esas cosas en la memoria por una razón, usar un eliminador de tareas es solo un servicio adicional más que consume su batería. Lo que debe tener en cuenta es aplicaciones que ejecutan servicios en segundo plano como twitter o clientes de correo electrónico que extraen sus servidores, cualquier buena aplicación que tenga un servicio como ese tendrá la opción de desactivarlo.

He notado un par de aplicaciones que consumen mucha batería en este estado de pausa. Es decir, la última versión de Google Maps y un juego que tengo llamado GalaxIR. Así que esté atento a los malos infractores y asegúrese de cerrarlos correctamente.
te equivocas, si es comer tu masa eso es un servicio de fondo.
De hecho, es posible tener una aplicación que no esté bien desarrollada y que no siga el ciclo de vida de la aplicación de Android. Por ejemplo, un hilo puede permanecer activo en una actividad incluso después de que el sistema operativo lo detuvo (presionando Inicio); en este caso, la aplicación seguirá utilizando la batería.
No mantendría nada así instalado en mi teléfono :-)
@schwiz ¿Está seguro de que el botón Atrás llamará a onDestroy()? No he notado esto mencionado en el ciclo de vida de la actividad . AFAIK, el botón Atrás simplemente saca la vista de la actividad de la pila. ¿Puede mostrarnos una referencia donde se indique esto?
@Flow simplemente haga una actividad simple que se imprima en la consola cuando se llame a onDestroy y verá que el botón Atrás destruye la actividad.
@schwiz Tienes razón, esto está documentado aquí . Tal vez quieras poner esto como enlace en tu respuesta.
Descubrí que muchas aplicaciones no se cierran cuando presiono el botón Atrás. Por ejemplo: Pandora, G
(mi tiempo de edición expiró).... otras aplicaciones que no se cierran con el botón Atrás: Pandora (que incluso continúa reproduciéndose después de presionar Atrás), Google Play Store, FaceBook, Podkicker. La forma en que estoy probando es hacer clic en el botón Atrás hasta que la aplicación desaparezca (por lo general, eso me lleva de nuevo a Inicio) y luego ejecutar Easy Task Killer.

Estoy bastante seguro de que todo lo que he leído dice que el Backbotón es la forma correcta de salir de las aplicaciones.

Al presionarlos Home, se ejecutan en segundo plano hasta que Android decide que ya no son necesarios, lo que puede ser útil si solo necesita cambiar entre aplicaciones para verificar algo (mantener presionado Inicio durante un par de segundos le da la lista de aplicaciones que se están ejecutando recientemente puede volver a cambiar en la mayoría de los teléfonos), pero al salir con el botón Atrás le indica a la aplicación que desea que se cierre.

Manteniendo presionado el Homebotón, solo enumere las últimas 6 aplicaciones abiertas, no la que se está ejecutando.
@Loïc: me muestra 8.
@LoicWolff, AlEverett Depende del lanzador en cuestión que se use y de la propia ROM.
Eso no es del todo cierto. Las actividades no se ejecutan en segundo plano en Android.

Algunas aplicaciones tienen una opción de "Salir" en sus menús. La mayoría no.

Realmente no necesitas preocuparte por eso. Puedes ir a la aplicación que necesites a continuación. Android hace un buen trabajo liberando recursos cuando es necesario.

Actualización : AndroidSpin hizo una investigación del mundo real .

Buen enlace, amigo :)

Las actividades no se ejecutan en segundo plano

En Android, las actividades (es decir, la parte de la aplicación que puedes ver) nunca se ejecutan en segundo plano. Solo pueden funcionar (y usar la energía de la batería) mientras están en la pantalla. La actividad deja de ejecutarse independientemente de si usas casa o vuelves a salir de ella. La única diferencia es qué datos Android le pide a la aplicación que guarde, por lo que ninguna opción es "la correcta". Solo depende de lo que quieras hacer.

Casa

Si usa home , Android deja la aplicación en el mismo estado, por lo que si vuelve a ella más tarde (por ejemplo, a través de la lista de aplicaciones recientes), seguirá en el mismo estado en que la dejó: en la misma pantalla, con el mismo material que se muestra. Por ejemplo, si se trata de una aplicación de correo electrónico y estaba viendo un correo electrónico, recordará qué correo electrónico era y le mostrará el mismo.

Eventualmente (después de aproximadamente media hora), Android concluye que no volverás a la aplicación, por lo que restablece este estado: la próxima vez que inicies la aplicación, comenzará desde la pantalla frontal/principal. Para continuar con el ejemplo, la aplicación de correo electrónico olvidará qué correo electrónico y qué carpeta estabas mirando y te mostrará la bandeja de entrada.

atrás

Si usa back , le está diciendo a Android que no quiere volver a esta vista. Destruirá la información sobre lo que estabas viendo de inmediato. La próxima vez que inicie la aplicación, se mostrará la pantalla frontal (por ejemplo, la bandeja de entrada).

Como han dicho otros, las aplicaciones pueden controlar el comportamiento del botón Atrás : por ejemplo, los navegadores web lo usan para retroceder en el historial del navegador. Lo que describí es el comportamiento predeterminado del botón Atrás, y se recomienda a los desarrolladores que mantengan ese comportamiento para evitar confusiones.

Procesos en segundo plano en caché

Cualquiera que sea el método que utilice, Android dejará la aplicación en la memoria (pero no se ejecutará) durante el tiempo que pueda. Esto es para ser más eficiente. Cuando regrese a la aplicación, si todavía está en la memoria, Android puede ejecutarla nuevamente de inmediato; si aún no está en la memoria, entonces Android tiene que gastar tiempo y energía cargando la aplicación desde el almacenamiento nuevamente.

En versiones antiguas de Android, las aplicaciones que quedaban en la memoria en segundo plano se incluían en la lista de "aplicaciones en ejecución". Esto es un poco confuso para los usuarios, hace que la gente piense que la aplicación todavía se está ejecutando, por lo que las versiones más nuevas llaman a estas aplicaciones "procesos en segundo plano en caché", para dejar en claro que solo están en caché, no en ejecución.

¿Qué pasa con las aplicaciones de fondo?

Anteriormente, dije que las actividades no se ejecutan en segundo plano. Entonces, ¿cómo comprueba su cliente de correo electrónico si hay correo? Además de actividades, las aplicaciones pueden tener servicios . Los servicios no tienen ninguna GUI para ver o interactuar, pero se ejecutan en segundo plano. Por lo general, un servicio solo se ejecutará con poca frecuencia, como revisar el correo una vez por hora, pero es posible que el desarrollador de la aplicación ejecute el servicio todo el tiempo, agotando su batería.

Dejar una actividad con atrás o inicio no cambia la forma en que Android trata cualquier servicio desde la misma aplicación: el servicio puede continuar ejecutándose o activarse más tarde en un momento dado (la próxima vez que vence la revisión del correo).

Resumen

En resumen, realmente no importa si usa back o home : solo cambia lo que la aplicación le muestra la próxima vez que la ejecuta. No tiene ningún efecto sobre el uso de la batería. Ninguno de los dos corresponde a "salir" de un programa en tu PC.

¡Estoy tan contenta de que alguien haya cubierto esto! Soy desarrollador, pero solía trabajar para Verizon Wireless y no puedo decir cuántas personas estaban preocupadas por esto cuando no era necesario.

En Android, nunca es necesario cerrar las aplicaciones y el sistema operativo se encarga de limpiar la memoria de las aplicaciones restantes cuando los recursos se necesitan en otro lugar. El uso de un asesino de tareas solo interrumpirá el funcionamiento normal del sistema operativo e incluso podría ralentizar el dispositivo porque las aplicaciones siempre tendrán que volver a cargarse desde el principio.

El ciclo de vida de la aplicación de Android funciona de manera que las aplicaciones que no están en la parte superior se mueven a un estado de pausa que ya no usa ninguna CPU; solo se conserva el contenido de la memoria en caso de que se vuelva a abrir la aplicación; y la memoria se liberará si es necesario.

Dicho esto, el desarrollador de la aplicación tiene la responsabilidad de seguir el ciclo de vida de la aplicación cuando crea su aplicación, por lo que pueden ocurrir algunos errores o errores que darán como resultado una aplicación que realmente nunca se detiene o pausa. Si encuentra dicha aplicación y quiere cerrarla, puede hacerlo a través de "Configuración" -> "aplicaciones" -> "Administrar aplicaciones" seleccionando "Forzar detención" en la aplicación.

Pero realmente no recomendaría usar un asesino de tareas que se ejecuta constantemente en el dispositivo.

Solo quiero agregar la respuesta de schwiz de que solo se necesitan unas pocas líneas de código para anular la funcionalidad del botón Atrás. Por lo tanto, no siempre es confiable cerrar la aplicación. Entonces, si el desarrollador de la aplicación no quiere cerrar la aplicación al presionar el botón Atrás, no se cerrará.

Aunque la mayoría de los buenos desarrolladores de aplicaciones muestran un cuadro de diálogo de alerta al presionar el botón Atrás en el menú de inicio de la aplicación, preguntando si el usuario tiene la intención de salir de la aplicación o no, si hace clic en salir, cierra la aplicación.

La respuesta correcta podría ser esta, el cierre de la aplicación depende completamente del desarrollador de la aplicación, si quiere que la aplicación se cierre al presionar el botón de inicio, ingresará el código de salida onPause(). Si lo quieren en el botón Atrás, lo pondrán en el archivo onBackKeyPressed. Así que no está realmente en manos del usuario.

El usuario simplemente puede evitar usar las aplicaciones que no brindan la funcionalidad de cierre adecuada, cuando no es necesario. Los administradores de tareas no son una buena manera de cerrar la aplicación, ya que pueden bloquear la aplicación y no les da la oportunidad de guardar su estado.

El sistema operativo cierra la aplicación cuando es necesario, por lo que no debe preocuparse demasiado por eso.

Editar:
hay una opción para destruir las aplicaciones, tan pronto como salga de la aplicación, es decir, cuando haga clic en la tecla de inicio. Puedes ir a Settings-> Developer Options-> Don't keep Activities. Aunque es una opción de desarrollador, pero si está demasiado preocupado por las aplicaciones que se ejecutan en segundo plano, puede usar esta opción. Pero tenga en cuenta que no se recomienda su uso por personas que no son desarrolladores.