User Tag List

Resultados 1 al 6 de 6

Tema: [Programación]Restaurar estado de la app

  1. #1

    Fecha de ingreso
    Jun 2004
    Ubicación
    Vivo en el pito foro...
    Mensajes
    20,686
    Mencionado
    70 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    230
    Agradecer Thanks Received 
    742
    Thanked in
    Agradecido 466 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    28

    [Programación]Restaurar estado de la app

    Una para Misato mayormente.

    Tenemos un problemilla con el app. Hay una actividad A que tiene un porrón de fragmentos, y otra actividad B que tiene otro porrón de fragmentos. El flow dentro del app está controlado, el problema me viene tratando de continuar tras un minimizado. Ahora mismo si vuelvo al app desde el gestor multitarea, ésta se encuentra en su estado anterior y sin problema. Si entro desde el icono del launcher, la aplicación se regenera totalmente de cero. OnCreate, OnPause, el flow completo y la "Máquina de Estados" a la posición inicial. Entiendo que es el comportamiento esperado, pero normalmente en otras apps que he usado el estado se mantenía al reabrirlas. No hay bundledStateInstance que me salve almacenando estados de los scrolls, requests, deep links ni nada. La parte positiva es que al menos la otra Activity si sigue abierta y en su estado original, pero la terrible MdE que nos han impuesto no se cumple correctamente.

    No puedo poner código pero como referencia las dos actividades y los fragmentos tienen sus super.onCreate, super.onResume y equivalentes subiendo por toda la jerarquía hasta arriba. Las dos actividades en este momento son SingleInstance ya que ambas tienen que cumplir singularidad e indestructibilidad.

    Me lleva un par de días de más tocando los huevos, si alguien tiene idea de qué puedo haber hecho mal que avise.

  2. #2

    Fecha de ingreso
    Jun 2004
    Ubicación
    Vivo en el pito foro...
    Mensajes
    20,686
    Mencionado
    70 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    230
    Agradecer Thanks Received 
    742
    Thanked in
    Agradecido 466 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    28
    Al final a las bravas, metiendo cosas en SharedPreferences en onPause y checkeandolas en el onResume de la actividad principal.

  3. #3

    Fecha de ingreso
    Sep 2001
    Ubicación
    BARNA
    Mensajes
    851
    Mencionado
    7 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    31
    Agradecer Thanks Received 
    67
    Thanked in
    Agradecido 50 veces en [ARG:2 UNDEFINED] posts
    yo tengo una aplicacion que reproduce radio, y le he puesto una notificacion en la barra de tareas para que al pulsarla se pudiera volver al reproductor y apagar la radio.

    La cosa es que al pulsarla se abria un nuevo formulario del reproductor, y buscando por internet encontré que si ponias en el manifest 'android:launchMode="singleTop"' en el formulario que querias que se mantuviera, al darle a la notificación volvia al que estaba abierto en vez de abrir uno nuevo. Aun así, al volver, pierde el oremus y los contadores que le he puesto (cajas de texto) se vuelven un poco locos y dejan de contar, no así la barra de progreso que si que sigue funcionando y marcando por donde vá. A lo mejor te sirve, lo mismo no.
    Última edición por _Seagal_; 31/01/2014 a las 12:30

  4. #4

    Fecha de ingreso
    Feb 2004
    Ubicación
    Madrid
    Mensajes
    22,749
    Mencionado
    226 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    2,240
    Agradecer Thanks Received 
    1,902
    Thanked in
    Agradecido 1,185 veces en [ARG:2 UNDEFINED] posts
    Venia a decir lo mismo, que te mires los flags de launchMode por si eso te vale.
    Eso que has hecho de onPause/onResume es un poco chapu. Siempre puedes sino serializar objetos en vez de en un shared preferences, o tener una cache. Sin ver código tampoco te puedo decir mucho y aparte no se cómo va el tema de los fragments porque hace 2 años casi que no hago Android más que cosas muy puntuales por ayudar en alguna app (y suele ser más tema de la arquitectura de la app que de programar android en sí)

  5. #5

    Fecha de ingreso
    Jun 2004
    Ubicación
    Vivo en el pito foro...
    Mensajes
    20,686
    Mencionado
    70 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    230
    Agradecer Thanks Received 
    742
    Thanked in
    Agradecido 466 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    28
    SingleTop te crea un nuevo elemento, pero sólo si no está ya en el top de la pila. default te lo crea siempre. SingleTask te crea una nueva pila y se pone al final, back te lleva a las pilas viejas. SingleInstance tiene su propia pila, pero si por algún motivo es destruido no puede ser recreado.

    No hay ninguno que sea realmente único y cuando lo llamas se ponga en el top de la pila, asi que al final llevo yo la pila entre ambos a mano y su tipo menos SingleInstance me da igual. La persistencia es simplemente guardar si el que lo cerró fue la actividad B. Nada doloroso.

    SharedPreferences no deja objetos que no estén serializados a String asi que he tenido que tirar por ahí para algunas cosas.

  6. #6

    Fecha de ingreso
    Feb 2004
    Ubicación
    Madrid
    Mensajes
    22,749
    Mencionado
    226 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    2,240
    Agradecer Thanks Received 
    1,902
    Thanked in
    Agradecido 1,185 veces en [ARG:2 UNDEFINED] posts
    Pero sharedPreferences no debería usarse para eso, por eso lo decía pero we como digo sin saber más datos tampoco se qué decirte.

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •