Resumen análisis del problema: Estoy haciendo una App, en concreto un navegador para Android y tengo un problema. Cuando el usuario se va a otro programa/app o minimiza la mía... Mi programa se va al background/segundo plano poniendo la actividad en pausa y finalmente en onstop de forma batante arbitraria según la decición tomada por el Android Garbage Collector del sistema que cierra aplicaciones en background para liberar memoria, ahorrar batería...
Cuando el usuario trae la app al frente/foreground desgraciadamente se "reinicia" mi app, o si manejo programaticamente los estados de mi actividad en el mejor de los casos recargo la pagina.
Estoy mirando soluciones y encontré
https://developer.android.com/training/scheduling/wakelock.html pero no encaja en absoluto con el fincionamiento de mi aplicación. Entonces no sé como afrontar este problema correctamente.
Problemática en el funcionamiento actual: El usuario utiliza mi aplicación para navegar por internet. Se loggea en alguna página y por ejemplo escribe un documento online. Mientras escribe este documento online, decide ir a la calculadora de su móvil para realizar un par de operaciones y añadirlas al documento, por lo que mi aplicación se minimiza. Tras hacer las operaciones vuelve a mi aplicación, la página se recarga o la aplicación se reinicia y pierde todo el documento que estaba escribiendo. Esto debido a que el Garbage Colector de Android decide finalizar mi aplicación porque cree que es conveniente para el usuario.
También si el usuario decide acceder a la cámara o cualquier otra funcionalidad del dispositivo para subir contenido online mediante mi aplicación, como sacarse una foto con la cámara del sistema para ponerla como foto de perfil de una red social, es posible y frecuente que el Garbage Colector finalice mi aplicación o la recarge, haciendo imposible para el usuario subir la imagen.
Funcionamiento deseado: La aplicación debería permanecer activa en el background, quizás en pausa, y a la vez no debería de recargarse la página al volver a traerla al frente tras acceder a otra aplicación del sistema. Si simplemente manejo el estado de la actividad seteándolo en onpause, el Garbage Colector sigue pudiendo finalizar la aplicación cuando quiera.
Qué puedo hacer al respecto?