我有一个程序使用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的onActivityResult()
中调用finish()
和setResult();
,我尝试使用finish()
方法退出所有应用程序。
问题是按下按钮后屏幕变黑了。然后我使用hierarchyviewer.bat
来查看视图;令我惊讶的是,有一个id为R.id.content
的视图和另一个没有id的根视图。工具显示活动B在顶部。我知道id为R.id.content
的视图是Activity
的根视图,但我不知道为什么在finish()
被调用后它仍然存在。你知道,在finish()
之后没有其他逻辑,也没有其他接收器,或者任何其他可以阻塞完成的。
可能是我错误使用ActivityGroup
的问题。有人能帮忙吗?
谢谢你回答我关于stackoverflow的第一个问题。
我知道根本原因,那是因为我使用了B的singleTask活动,但其他一些活动作为新任务启动,仍然没有完成。