调用finish()后,ActivityGroup的子活动未完成

时间:2011-08-27 16:01:27

标签: android android-activity lifecycle activitygroup

我有一个使用ActivityGroup的程序。 课程结构如下:

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是整个计划的入口。 在B onCreate()中,我使用startActivityResult()启动C;在C中,它会向用户显示一个按钮;用户点击该按钮后,C会在B的finish()中调用setResult();onActivityResult(), 我尝试使用方法finish()退出所有应用程序。

问题是按下按钮后屏幕变黑。然后我也使用hierarchyviewer.bat查看视图;令我惊讶的是,有一个标识为R.id.content的视图和另一个没有标识的根视图。工具显示活动B位于顶部。 我知道ID为R.id.content的视图是Activity的根视图。但我不知道为什么在调用finish()之后它仍然存在。你知道,在finish()之后没有其他逻辑,没有其他接收器,或任何其他接收器可以阻止完成。

可能这是我错误使用ActivityGroup的问题。有人可以帮忙吗?

感谢您对stackoverflow的第一个问题的回答。

1 个答案:

答案 0 :(得分:0)

我知道根本原因,那是因为我使用了B的singleTask活动,但其他一些活动是作为新任务启动的,但仍未完成。