2012-08-06 22 views
26

Digamos que tengo una actividad base con un menú, cuando hago clic en el elemento A del menú, va a la actividad A. Abra el menú de nuevo, y vaya a B. Desde BI regrese a A, y atrás y cuarto me gusta esto por un tiempo¿Cómo funciona android: noHistory = "true"?

Así que la pila sería A, B, A, B, A, B, .... Y cuando presiono el botón Atrás, va hacia atrás a través de la pila como se esperaba.

Sin embargo digamos que no quiero esta funcionalidad, así que agrego a mi manifiesto, android:noHistory="true". Entonces, cuando presiono el botón Atrás, sale de la aplicación en lugar de pasar por la pila.

Ahora la ilusión hace parecer, digamos que si estoy en el ejercicio A, utilizo el menú e ir a la actividad B, la pila no sería más que B, porque no puedo volver a A.

Pero, al usar noHistory="true", ¿existe la verdadera pila de A, B, A, B, A, B? Más bien, ¿cada llamada a una actividad utiliza el menú instanciando una nueva copia de esa actividad, pero el usuario no puede verla? ¿Esto estaría causando problemas de recursos?

O cuando noHistory="false", ¿el botón Atrás vuelve a llamar a algo como startAcitvity(intent) o está pasando por cada nueva copia que se creó?

Me preocupan los problemas de recursos y no ralentizar el dispositivo Android de un usuario.

+0

Puede probarlo usted mismo, consulte esta pregunta: http://stackoverflow.com/questions/4387875/view-activity-stack-in-android – Dalmas

Respuesta

31

Desde el docs sobre noHistory:

Un valor de "verdad" significa que la actividad no va a dejar una huella histórica. No permanecerá en la pila de actividades para la tarea, por lo que el usuario no podrá volver a ella.

cuanto a su pregunta:

sí existe la verdadera pila de A, B, A, B, A, B?

Los documentos indicarían que no.

Me preocupan los problemas de recursos y no ralentizar el dispositivo Android de un usuario.

Realmente no necesita preocuparse por esto. El sistema operativo debe manejar la limpieza de actividades cuando la memoria está baja. Es más probable que el uso de bitmaps o lógica deficiente en sus actividades resulte en una desaceleración del rendimiento.

Cuestiones relacionadas