android - que - partes de un libro
Reanude la Actividad en lugar de Comenzar si ya existe en la contraportada (3)
Puedes agregar estas dos líneas y probar
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Escribe esto en tu archivo manifiesto dentro de la Actividad
<activity
android:name=".SettingsActivity"
android:launchMode="singleInstance"
android:screenOrientation="portrait" >
</activity>
Las actividades "singleTask" y "singleInstance" solo pueden comenzar una tarea. Siempre están en la raíz de la pila de actividades. Además, el dispositivo solo puede mantener una instancia de la actividad a la vez, solo una de esas tareas.
Puedes usar SingleTask o SingleInstance
"SingleTask": el sistema crea la actividad en la raíz de una nueva tarea y le dirige la intención. Sin embargo, si ya existe una instancia de la actividad, el sistema enruta el intento a la instancia existente a través de una llamada a su método onNewIntent (), en lugar de crear uno nuevo.
"singleInstance": igual que "singleTask", excepto que el sistema no inicia ninguna otra actividad en la tarea que contiene la instancia. La actividad es siempre el único y único miembro de su tarea.
Consulte este enlace http://developer.android.com/guide/topics/manifest/activity-element.html
Tengo una Activity_1
después de muchos pasos, digamos
Activity_2
> Activity_3
.... en alguna Activity_n
cambio algunos datos relacionados con Activity_1
y lo llamo usando
Intent intent = new Intent(Activity_n.this, Activity_1.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
Para actualizar el contenido. Pero luego puedo volver a Activity_1
donde comencé, que tiene datos antiguos.
En su lugar, quiero que se onResume()
Activity_1
inicial onResume()
, utilizando el código anterior. O bandera apropiada
FLAG_ACTIVITY_CLEAR_TOP
Considere una tarea que consiste en las actividades: A, B, C, D. Si D llama a startActivity () con un Intent que se resuelve en el componente de la actividad B, entonces C y D se terminarán y B recibirá el Intent dado dado, dando como resultado la pila ahora es: A, B.
Eso es lo que dicen los doctores, pero no lo que estoy obteniendo.
Reanude la Activity
desde backstack si existe o cree una nueva si no es así
android:launchMode="singleTask"
agregue esta línea al AndroidManifest.xml de su aplicación e inicie la actividad con una Intent
normal.
intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
Visita: http://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_REORDER_TO_FRONT