Cómo administrar el estado de la aplicación en Android (para el desarrollador de iPhone)

Recientemente he lanzado mi primera aplicación para iPhone y parece que hay gente en la comunidad de Android pidiéndola … así que comencé a desarrollar w / el SDK.

La primera cosa que noté es que en mi aplicación de iPhone me gustaría almacenar determinadas variables de sesión amplia en el appDelegate. Como no tengo esta estructura en Android, tengo curiosidad por saber cómo los desarrolladores de Android realizan un seguimiento del estado de la aplicación en toda la aplicación (esperanzadamente sin una tonelada de objetos singleton).

Si el enfoque singleton es cómo la mayoría de los desarrolladores lo hacen, ¿cómo puedo asegurar que la aplicación comience en un estado limpio cada vez que el usuario haga clic en el botón "home" y vuelva a hacer clic en el icono (hay algo que puedo agregar a mi manifiesto para asegurar No admite multitarea de esta manera?)

Mi aplicación tiene un montón de estado específico de la sesión y para la primera iteración aún no soportará la multitarea 🙁

En primer lugar, la aplicación para Android puede consistir en varias actividades.

Si desea compartir estado entre Actividades, utilice la clase Aplicación : ¿Cómo declarar variables globales en Android?

Si sólo tiene una actividad, entonces puede guardar el estado allí.

Tenga cuidado: cuando la actividad no está activa (no muestra la interfaz gráfica de usuario), no significa que se haya eliminado. Así que si usas tu aplicación y luego la cierras, abre otra aplicación, luego regresa a tu aplicación, podría estar todavía "viva" (guardada en la memoria) y el estado sería preservado.

La mejor manera de manejar esto es conectarse al ciclo de vida de la actividad . A continuación, puede establecer / restablecer datos a voluntad.

Encuentro que Singletons es la mejor manera de retener el estado de la aplicación en las aplicaciones de Android. Puede escuchar cuando el usuario abandona la aplicación a través de los onPause() y onStop() de la actividad actualmente enfocada, y haga lo que quiera con sus datos en ese momento. No es una buena práctica tratar de anular la gestión del ciclo de vida del sistema operativo de la aplicación (por ejemplo, intentando eliminar el proceso cuando se pulsa Atrás). Si desea que el estado de la aplicación se restablezca cada vez que el usuario abandona la aplicación (pulsando Inicio, o si se interrumpe con una llamada telefónica o notificación o lo que tiene), simplemente coloque todos los datos de la sesión en la actividad misma. Cuando el usuario lo abandone será destruido y recreado cuando el usuario regrese.

Obviamente hay detalles que no conozco acerca de tu aplicación, pero una vez que te familiarices con el ciclo de vida de cada pantalla (Actividad) y de la aplicación, podrás usar las devoluciones de llamada para administrar tu estado como quieras .

http://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle

Si desea cerrar la aplicación cuando el usuario accede a la tecla "inicio", puede llamar a finish () al método onPause.

Vea este enlace: Matar la aplicación android en pausa

  • ¿Cómo combino el uso de db4o para almacenar datos y Lucene para indexar datos para una búsqueda rápida?
  • Preguntas sobre la interoperabilidad de lenguajes web en un proyecto de plataforma cruzada
  • Advertencia: Advertencia: Versión de origen compatible 'RELEASE_7' del procesador de anotaciones 'android.arch.lifecycle.LifecycleProcessor' less than -source '1.8'
  • Crear una gran red de contenido en Android
  • Realización de Interactors con Android MVP Clean Architecture
  • Android Patrones arquitectónicos
  • ¿Hay una manera de determinar si es posible llamar a un dialog.dismiss () sin vacío try-catch bloque?
  • Android: cómo crear una aplicación de pestañas compleja con vistas
  • Android, programación orientada a objetos vs diseñar para el funcionamiento
  • Arquitectura estándar para aplicaciones de iOS / Android que requieren una interfaz de servidor
  • Couchbase lite en Android - ¿Arquitectura general?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.