android - solucion - La aplicación se bloquea cuando la aplicación se reanuda durante mucho tiempo
por que se detiene mi aplicacion de android studio (3)
Estoy creando una aplicación de Android. Tiene un proceso de descarga desde el servidor. Funciona bien hasta que la aplicación se ejecuta y mantiene los datos sin ningún bloqueo, pero ahora estoy atrapado con el problema como se describe a continuación
Cuando la aplicación se minimiza presionando el botón de inicio y después de un largo tiempo, cuando abro la aplicación, todos los datos de la aplicación se eliminan. Me da una "Excepción de puntero nulo"; incluso el valor de ArrayList se elimina y da una lista de arrays de 0 tamaños.
Estoy abriendo la aplicación después de maximizar desde la pantalla de inicio a través de OnResume solamente, pero no se llamó a sí mismo.
No sé por qué ocurre este problema. ¿Puede alguien por favor sugerirme una solución y señalarme qué estoy haciendo mal?
Supongo que el recolector de basura descarta tus datos mientras tu aplicación está en segundo plano. intente guardar sus datos en la base de datos SQLite incorporada, o en el paquete savedInstanceState en el método de ciclo de vida onSaveInstanceState () y cárguelo en el método onRestoreInstanceState ().
Sí, es cierto, como dijo @paradx, que el recolector de basura descarta los datos mientras la aplicación está en segundo plano. Finalmente encontré una solución basada en @paradx sugerencia, ya que los datos se almacenan en SQLite o savedInstanceState
Solo pase algunos de los valores estáticos a través del
intent.putExtra("static key","static value");
Luego, el hashmap estático se escribe en un archivo y se recupera para su uso posterior. Ahora la aplicación no falla para este problema.
He publicado esta solución para que alguien pueda usarla.
¿Utilizaste el cliente Apache HTTP o la UrlConnection?
Ver Apache http client o URLConnection
Tal vez el uso incorrecto podría conducir a un NPE como ese. ¿Podría también publicar su salida logCat?