La actividad secundaria de ActivityGroup no finaliza después de que se llama a finish ()

Tengo un programa que usa ActivityGroup. La estructura de clases es la siguiente:

Class A extends ActivityGroup {
onCreate(){
}
}

Class B extends A {
onCreate() {
startActivityResult();//launch C
}

onActivityResult(){
...
finish();//finish activity after receive result from C;this line of code does execute in test
...
}
}

Class C extends A {
onCreate(){
...
}
}

B es la entrada para el programa general. En B's onCreate(), Yo suelo startActivityResult() para lanzar C; en C, mostrará al usuario un botón; después de que el usuario haga clic en el botón, C llamará finish() y setResult(); luego en B's onActivityResult(), Trato de usar el método finish() para salir de toda la aplicación.

El problema es que la pantalla se vuelve negra después de presionar el botón. Entonces uso hierarchyviewer.bat también vea las vistas; para mi sorpresa, hay una vista con id R.id.content y otra vista raíz sin id. Y las herramientas muestran que la actividad B está en la parte superior. Conozco la vista con id R.id.content es la vista raíz de un Activity.Pero no sé por qué sigue ahí después finish() se llama. Sabes, no hay otra lógica después finish() y ningún otro receptor allí, ni ningún otro puede bloquear para terminar.

Tal vez sea un problema por mi mal uso de ActivityGroup. ¿Alguien puede ayudar?

Gracias por sus respuestas a mi primera pregunta sobre stackoverflow.

preguntado el 27 de agosto de 11 a las 16:08

1 Respuestas

Conozco la causa raíz, eso es porque utilicé una actividad singleTask de B, pero algunas otras actividades se inician como una nueva tarea y aún no se terminan.

Respondido el 20 de Septiembre de 11 a las 11:09

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.