Problema con actividad cancelada por el sistema si ya no es visible en Android

Tengo actividades allí (A, B, C) dentro de mi aplicación. Cuando comienzo la actividad de la aplicación A:

A:onCreate() A:onStart() A:onResume() 

Usando intención estoy llamando Segunda Actividad (A -> B):

  A:onPause() B:onCreate() B:onStart() B:onResume() A:onStop() 

A continuación, haga clic en el botón "Inicio" Así que la aplicación va a fondo: Ahora

  B:onPause() B:onStop() 

Después de 1 o 2 horas más tarde Vuelvo a la página de inicio en mi dispositivo y haga clic en el icono de la aplicación se ejecuta como:

  B:onDestroy() A:onRestart() A:onStart() A:onResume() 

Pero necesito ir cuál Actividad debo dejar así,

 B:onRestart() B:onStart() B:onResume() 

He leído algunos artículos que dice como esa actividad matada por el sistema debido a que ya no es visible.¿Hay alguna posibilidad de solucionar mi problema …

Gracias por adelantado…

Usted puede estar confundiendo dos cosas diferentes aquí:

  1. Android no destruye una actividad si necesita memoria. Lo que hace es que mata todo el proceso en el que se está ejecutando la actividad. En general, eso significa que Android mata todas sus actividades en esta situación. Sin embargo, recuerda la pila de actividades y cuando el usuario vuelve a la aplicación, Android creará un nuevo proceso y luego recreará cada actividad (a su vez, según sea necesario). Comienza recreando la actividad que estaba en la parte superior de la pila de actividades (es decir: donde el usuario dejó la aplicación).

  2. Android asume que si el usuario deja una tarea durante un largo período de tiempo (creo que esto es algo así como 30 minutos), entonces ya no está interesado en esa tarea y no tiene sentido recordar dónde estaba el usuario en la pila de actividades de Esa tarea porque probablemente ya no le importa. En este caso, lo que sucede es que cuando el usuario vuelve a la tarea (o reinicia la aplicación que estaba en la parte superior de la pila de actividades en esa tarea), simplemente vuelve a borrar la tarea a la actividad raíz . Esto tiene el efecto de que parece que la aplicación se está iniciando de nuevo . Este es el comportamiento deseado (y documentado).

Lo que quieres hacer es evitar que Android limpie la tarea en la situación # 2. Lo haces agregando

  android:alwaysRetainTaskState="true" 

A la etiqueta <activity> de la actividad raíz (es decir: la actividad que inicia su aplicación, la que tiene ACTION_MAIN y CATEGORY_LAUNCHER ).

No creo que esto sea algo que puedas controlar. Si su actividad está en segundo plano durante mucho tiempo y mientras otras aplicaciones necesitan memoria, el sistema destruirá su actividad para liberar memoria.

  • Notificación personalizada con vista remota en Android
  • Uso de drawables internos de android
  • Aplicación de Android Crashing después de salir presionando "botón Atrás"
  • El tamaño del EditText no se ajusta al contenido
  • android TextView.setText no funciona en widget simple
  • Extraer una línea de un EditText
  • ¿Es posible reutilizar RemoteViews en un appWidget en lugar de crear nuevos cada vez? Y cómo puedo almacenarlos?
  • Uso del selector para cambiar el color de texto de TextView
  • Barra de puntuación que muestra sólo media estrella en lugar de estrella completa
  • El divisor Horizonal más alto y más inferior no aparece en ListView
  • Visualización de la imagen dibujable desde url en un ListView
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.