13

Soy nuevo en el desarrollo de Android.Cómo finalizar la actividad principal de la actividad infantil

He creado una actividad principal (-> A), que tiene 4 botones. Uno de los 4 botones es el botón EXIT.

Comienzo otra actividad (-> B), al hacer clic en el botón EXIT. Esto abre 'B'Activity a través de una intención de' A'Activity.

La actividad 'B' contiene - ¿Desea salir? Sí-Botón & Sin botón.

Si doy finish(), al hacer clic en el botón, sale de 'B'Activity. Quiero terminar 'B' & 'A'.

Incluso he intentado con A.finish() -> esto no se reconoce y los resultados en la sintaxis/error semántico.

Agradecería ayuda aquí.

P.S: estoy usando la versión Android-2.2 del teléfono, y no me gusta usar ActivityManager para resolver esto.

Respuesta

36

intento poner en marcha la actividad niño con

startActivityForResult(intent, REQUEST_EXIT); 

En la actividad infantil

case R.id.quit: 
    setResult(RESULT_OK, null); 
    finish(); 

En la actividad de los padres

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

    if (requestCode == REQUEST_EXIT) { 
     if (resultCode == RESULT_OK) { 
      this.finish(); 

     } 
    } 
} 
+0

Esto ayudó - ¡muchas gracias! – sudhishkr

+0

Funciona si la actividad principal no apareció. Quiero decir, tengo un botón que inicia otra actividad. en este botón, haga clic en También no terminaré la actividad actual y su elemento primario – hasan83

+0

Este método funcionará siempre que la actividad secundaria se haya iniciado en la actividad principal utilizando startActivityForResult, y onActivityResult se define en el elemento primario. –

6

uso startActivityForResult() en Actividad A para el inicio de actividad B y onActivityResult() en un solo finish() Actividad A. En la actividad B en el botón presionado simplemente finish()Actividad B.

+0

gracias Georgy ha explicado lo mismo: he usado su sección de códigos en la mía. – sudhishkr

5

Puede terminar la actividad de los padres del niño como actividad ...

En Parent ....

startActivityForResult(new Intent(Parent.this, Child.class), ACTIVITY_CONSTANT); 

Y reemplaza el método OnActivityForResult (...) en Parent.

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    // TODO Auto-generated method stub 
    super.onActivityResult(requestCode, resultCode, data); 
    if(requestCode == ACTIVITY_CONSTANT) 
    { 
     finish(); 
    } 
} 

Cuando llama a finish() en la actividad de niño, también termina el elemento principal.

+0

Gracias - funciona – sudhishkr

Cuestiones relacionadas