2012-09-13 17 views
14

Tengo una aplicación con 3 actividades.Actividad de currículum en Android

Tengo la actividad principal. Esto llama a la segunda actividad, que luego llama a la tercera actividad. Quiero volver a la actividad principal sin ingresar a onCreate.

Este es el código para la tercera actividad:

startActivity(new Intent(TerceraActiviry.this, Main.class)); 
+0

uso launchMode singleTop – njzk2

+0

singleTop sólo se re- use la misma instancia si una instancia ya está en la parte superior de la pila de actividades, que en este caso no será – kingraam

Respuesta

39

Si su Activity está aún en marcha, este código llevarlo a la parte delantera sin entrar onCreate

Intent openMainActivity= new Intent(TerceraActiviry.this, Main.class)); 
openMainActivity.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); 
startActivityIfNeeded(openMainActivity, 0); 
+1

Gracias. Busco esta solución durante muchas horas. Y lo resolvió en unos minutos. –

+0

Creo que hay 1 extra ")" en primera línea. –

1

Usted startActivityForResult en lugar de startActivity.

consulte el desarrollador de Android para obtener más información here.

+0

No estoy de acuerdo, esto creará una nueva instancia de la actividad – kingraam

+0

si usa startActivityForResult para iniciar el segunda y tercera actividades, puede volver al primer acto vity configurando RESULT_OK y llamando al método finish() (respectivamente). Allí al pasar el control a la actividad principal ya existente. – Gan

+0

Punto justo: en el contexto de la pregunta, parecía que sugería que reemplazara la actividad de inicio con startActivityForResult, lo que no hubiera ayudado a – kingraam

2

con el fin de volver a la actividad anterior que tiene que terminar el visible, utilice esto:

finish(); 

Si se inició la actividad de un resultado, usted debe dar un resultado a continuación, así:

Intent intent = new Intent(); 
intent.putExtra(KEY_RESPONSE, responseData); 
setResult(RESULT_OK, intent); 
finish(); 

Y hay que coger el resultado de la actividad de llamadas usando:

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 

    switch (requestCode) { 
    // Test for the code you have used to start the Activity 
    } 
} 

creo que sirve , Saludos

0

El indicador del modo de inicio que desea es clearTop. Esto volverá a la instancia anterior de la actividad principal y borrará la segunda y tercera actividad de la pila de actividades. Por ejemplo, para hacer esto desde el código:

Intent intent = new Intent(TerceraActiviry.this, Main.class)); 
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(intent); 
+0

esto llamará a Crear para la actividad principal – Gabriel

Cuestiones relacionadas