¿Cuál es la principal ventaja y la desventaja de "no mantener las actividades" en android
Una consulta que me gustaría tener si alguien pudiera responder como: Do not keep activities
opciones que se verán durante la prueba de la aplicación Android android de las opciones de los desarrolladores.
Lo usé en mi aplicación y encontré que mi aplicación se comporta de manera inapropiada y se estrelló al encenderlo Do not keep activities
en android.
- Tiempo inactivo de actividad para ActivityRecord
- Obtención de datos pesados lanza Ventana de cursor: La ventana está llena de error
- Para eventos de Android, ¿por qué las sentencias switch son más comunes que if-else?
- Estado emergente directamente desde coldstart
- ¿Por qué el emulador de Android es tan lento? ¿Cómo podemos acelerar el emulador de Android?
Mis preguntas eran pocas:
1: How much this option will affect mobile applications?
2: What exactly does this do?
Suena como un asesino de la aplicación, me doy cuenta en las opciones de desarrollador hay una caja que dice No mantener las actividades – destroy every activity as soon as the user leaves it
.
¿Esto crea alguna funcionalidad positiva y / o negativa en mis aplicaciones?
¿Eso significa que si abro una aplicación y tan pronto como lo deje, en realidad se cierra esa aplicación y no lo vería en el administrador de tareas para matarlo manualmente? Si es así, ¿no es esto una buena cosa para mantener el uso de RAM bajo?
¿Cuáles fueron las ventajas y desventajas de usarlo mientras se mantiene Do not keep activities
, por favor comparta la experiencia en él.
- Explicitamente liberando Mat con opencv 2.0
- Cómo detener la creación excesiva de objetos en los teléfonos Samsung?
- Es posible hacer SpeechRecognizer más rápido?
- El menú deslizante de Android bloquea la interfaz de usuario
- PercentRelativeLayout es más performante?
- Fragmentos de Android y su influencia en el rendimiento
- Problema "La prueba del repositorio tiene un error" al intentar importar el proyecto de bitbucket al android studio
- Cómo lograr animaciones de transacciones de fragmentos suaves en Android
¿Cuánto afectará esta opción a las aplicaciones móviles?
Si están bien escritos, esta opción no los afectará.
¿Qué hace esto exactamente?
Si esta opción está activada, solo las variables guardadas en la actividad con el método onSaveInstanceState
se guardarán cuando vayas a otra actividad o la aplicación quede en 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 lo deje, en realidad se cierra esa aplicación y no lo vería en el administrador de tareas para matarlo manualmente?
No, significa que todas las variables no guardadas se eliminarán. Cuando por ejemplo presione el botón de inicio.
¿Esto crea alguna funcionalidad positiva y / o negativa en mis aplicaciones?
No sólo ayuda a desarrollar la aplicación correctamente. Ayuda a predecir situaciones inesperadas.
No Mantenga Actividades es puramente una opción de desarrollador que le ayudará a comprobar si
- Ha guardado el estado de la actividad, antes de que pase al fondo.
2. manejado memoria baja situaciones correctamente (en cuyo caso la actividad será destruido). ̶
Editar : Esta opción no emula situaciones de memoria baja. Cuando el dispositivo experimenta poca memoria, el sistema puede pedir a la actividad que abandone llamando a Finish () o puede seguir adelante y matar el proceso completamente, como dice el comentario.
Todavía es bueno desarrollarse con esta opción habilitada. Tendrá que codificar adecuadamente los onSaveInstanceState()
y onRestoreInstanceState()
. Al hacer esto, incluso si el proceso se pierde, cuando el usuario vuelve a esta actividad, onCreate () se llamará con el savedInstanceState que se guardó en el onSaveInstanceState(Bundle)
.
VENTAJA :
El desarrollador puede comprobar el comportamiento anormal de su aplicación y arreglar los casos de low memory - framework kills the application
DESVENTAJA :
Si el usuario ha habilitado esta opción sin saberlo, 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
Muy buena respuesta se da en el foro de desarrolladores xda sobre el uso de esta opción
Como una adición a las respuestas anteriores es otra, no es visible desde la primera mirada desventaja que sólo puede probar la actividad de destruir / recreación con esta opción, pero no todo el proceso de recreación de aplicaciones debido a la falta de memoria u otras condiciones del sistema, De la memoria de actividad permanece.
Imagine que tiene un singleton en el que sus clases son dependientes. Después de que el sistema haya matado la aplicación sus singletons serán también despejados y restaurados con el estado del principio en caso de que usted no haya aplicado su restauración por se. Por lo tanto, a pesar de su estado de actividad, los campos & state se restaurarían en caso de que onSaveInstanceState
& onRestoreInstanceState
se implementara correctamente, eso no garantiza un comportamiento correcto de la aplicación después de restaurar, incluso en la pantalla en particular. Eso debe ser considerado
Por lo tanto, para probar este caso, debe detener la aplicación de forma manual, pero no la deje caer desde el administrador de tareas. Manera más fácil – con el botón cuadrado rojo de la parada en estudio del androide. Y vuelve a abrir la aplicación.
Ver más
"No mantener las actividades" ventaja es que emular el sistema de memoria baja situación 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 una especie de stricted y matar sólo las actividades cuando no hay manera de emular esto para los servicios
- ¿Se puede regenerar un archivo .iml de módulos eliminados en android studio
- Android MediaPlayer toma mucho tiempo para preparar y almacenar