2012-07-12 7 views
7

La mayoría de mis actividades cargan datos dinámicos de un servidor, y cuando la página vuelve a estar enfocada, la vuelvo a cargar de todos modos. Parece un desperdicio mantenerlos cerca si los voy a recargar, así que pensé en llamar a finish() si el usuario navega fuera de la página. Es confuso si algunas actividades pueden presionar el botón Atrás y otras no porque he llamado a finish() sobre ellas, así que me preguntaba si es una mala práctica llamar a finish() en todas las actividades que el usuario navega fuera de ? (Tengo una barra de navegación en la parte inferior de cada actividad, por lo que no es necesario el botón Atrás). O, ¿es mejor no llamar a finish() en ninguna de las actividades y solo esperar que no disminuyan la velocidad del teléfono y que el SO se encargue de la recolección de basura? Soy nuevo en la programación de Android y no tengo un teléfono con Android, así que no estoy seguro de cuál es la mejor práctica común en esta situación, o si es solo una cuestión de gusto personal.¿Mejores prácticas para llamar a finish() en una actividad en Android?

Además, ¿es posible indicar a Android que mantenga un historial de actividades para que el botón de retroceso funcione, pero finalícelo cuando se alejen para que no ocupen innecesariamente recursos?

+3

Para comentar también como usuario de Android * (dijiste que no tienes un teléfono con Android), mencionaste que podría no ser necesario usar el botón Atrás porque tienes una barra de navegación en cada actividad. Yo de una vez * siempre * uso el botón Atrás sin importar la interfaz, solo por pura costumbre. Algo para tener en cuenta ... ¡buena suerte! – Tom

Respuesta

6

Si bien puede volver a cargar todos sus datos al regresar a la actividad, no tiene sentido llamar al finish().

Cuando las actividades están ocultas, no usan recursos y no representan un problema real. Simplemente déjelos tal como están, y luego cuando el usuario navegue de regreso, lo volverá a cargar según sea necesario.

En este estado, también pueden ser recogidos basura si es necesario, que es todo cuidado por Android.

0

En la mayoría de los casos, no necesita (y no debe) llamar a finish(); Android se encarga de administrar las actividades por ti.

Si necesita hacer una limpieza cuando un usuario abandona la actividad, puede hacer ese tipo de cosas en las diversas devoluciones de llamadas de actividades como onDestroy().

Si aún no lo ha hecho, lea Activities en la guía para desarrolladores de Android.

0

No debe llamar al finish() a menos que esté seguro de que la actividad no se ejecutará en un tiempo prolongado. Es mejor dejar que Android maneje qué hacer con él. Ponga su código de limpieza en onPause() y su código de carga en onResume().

Cuestiones relacionadas