android performance android-activity usability crash-dumps

¿Cuál es la principal ventaja y desventaja de "no mantener las actividades" en Android?



performance android-activity (5)

¿Cuánto afectará esta opción a las aplicaciones móviles?

Si están bien escritas esta opción no les afectará.

¿Qué hace esto exactamente?

Si tiene esta opción activada, solo las variables mantenidas en actividad con el método onSaveInstanceState se guardarán cuando vaya a otra actividad o la aplicación pasará a segundo plano. Todas las demás variables serán eliminadas inmediatamente. Cuando esta opción está desactivada, existe la posibilidad de que esta variable se mantenga

¿Eso significa que si abro una aplicación y tan pronto como la abandono, en realidad la cierra y no la veo en el administrador de tareas para eliminarla manualmente?

No significa que todas las variables no guardadas serán eliminadas. Cuando en el ejemplo presione el botón de inicio.

¿Esto crea alguna funcionalidad positiva o negativa en mis aplicaciones?

No solo ayuda a desarrollar la aplicación correctamente. Ayuda a predecir situaciones inesperadas.

Una consulta que me gustaría tener si alguien pudiera responderla como: Do not keep activities opciones de Do not keep activities que deben verificarse durante la prueba de la aplicación móvil de Android desde las opciones de los desarrolladores.

Lo utilicé en mi aplicación y descubrí que mi aplicación se comporta de forma inapropiada y se bloqueó cuando lo encendí Do not keep activities en Android.

Mis preguntas fueron pocas:

1: How much this option will affect mobile applications?

2: What exactly does this do?

Suena como un asesino de aplicaciones. Observo que en las Opciones de Desarrollador hay un cuadro que dice No mantener actividades: destroy every activity as soon as the user leaves it .

¿Esto crea alguna funcionalidad positiva o negativa en mis aplicaciones?

¿Eso significa que si abro una aplicación y tan pronto como la abandono, en realidad la cierra y no la veo en el administrador de tareas para eliminarla manualmente? Si es así, ¿no es esto algo bueno para mantener bajo el uso de RAM?

¿Cuáles fueron las ventajas y desventajas de usarlo mientras mantiene Do not keep activities Por favor, comparta la experiencia en él.


Como una adición a las respuestas anteriores es otra, no es visible desde el primer aspecto la desventaja de que solo puede probar problemas de destrucción / recreación de actividades con esta opción, pero no todo el proceso de recreación de la aplicación debido a la falta de memoria u otras condiciones del sistema, porque todos son independientes. A partir de la actividad queda la memoria.

Imagina que tienes algún singleton del que dependen tus clases. Después de que el sistema haya eliminado la aplicación, sus singletons también se borrarán y se restaurarán con el estado de inicio en caso de que no haya implementado su restauración por usted mismo. Por lo tanto, a pesar de su estado de actividad, los campos y campos se restaurarán en caso de que se onSaveInstanceState implementado correctamente onSaveInstanceState & onRestoreInstanceState , eso no garantiza un comportamiento correcto de la aplicación después de la restauración, incluso en la pantalla en particular. Eso debe ser considerado

Por lo tanto, para probar este caso completo, debe detener la aplicación manualmente, pero no lo deje caer desde el administrador de tareas. Forma más fácil: con el botón cuadrado rojo en el estudio de Android. Y abrir la aplicación de nuevo.

Ver más


La ventaja de "no mantener actividades" es que emula una situación de poca memoria cuando comienza a matar diferentes partes de la aplicación. Su aplicación debe mantener esta situación. La desventaja es que esta opción es un tipo de actividades restringidas y solo para matar cuando no hay manera de emular esto para servicios


No mantener actividades es solo una opción para desarrolladores que te ayudará a verificar si

  1. Ha guardado el estado de la actividad, antes de que pase a segundo plano.

2. manejado memoria baja situaciones correctamente (en cuyo caso la actividad será destruido). ̶

Editar : Esta opción no emula las situaciones de poca memoria. Cuando el dispositivo experimenta poca memoria, es posible que el sistema le pida a la actividad que se retire al llamar a Finalizar () o puede continuar y eliminar el proceso por completo, como dice el comentario.

Todavía es bueno desarrollar con esta opción habilitada. Tendrá que codificar correctamente los onSaveInstanceState() y onRestoreInstanceState() . Al hacer esto, incluso si el proceso se detiene, cuando el usuario navegue de regreso a esta actividad, se llamará a onCreate () con el savedInstanceState que se guardó en el onSaveInstanceState(Bundle) .


VENTAJA :

El desarrollador puede verificar el comportamiento anormal de su aplicación y corregir los casos de low memory - framework kills the application

DESVENTAJA :

Si el usuario ha habilitado esta opción sin saberlo, entonces el dispositivo funcionará lentamente y todas las actividades se volverán a crear a través de la navegación del usuario en su dispositivo. Esto dificultará el trabajo del usuario.

Se da muy buena respuesta en el foro de desarrolladores de xda sobre el uso de esta opción.