ActivityGroup을 사용하는 프로그램이 있습니다. 클래스 구조는 아래와 같다 :finish()가 호출 된 후 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가 finish()
과 setResult();
을 호출 한 다음 B의 onActivityResult()
, 에있는 모든 응용 프로그램을 종료하려면 finish()
메서드를 사용해보십시오.
문제는 버튼을 누른 후 화면이 검게 변하는 것입니다. 그럼 내가보기를 참조 hierarchyviewer.bat
너무 사용하십시오; 저의 놀랍게도, ID가 R.id.content
인 뷰와 id가없는 다른 루트 뷰가 있습니다. 그리고 도구는 활동 B가 맨 위에 있음을 보여줍니다. id가 R.id.content
인보기는 Activity
의 루트보기입니다. 그러나 finish()
이 호출 된 후에도 여전히 그 이유를 알 수 없습니다. finish()
다음에 다른 로직이 없으며 다른 수신기가 없거나 다른 블록이 끝내기 위해 블록 할 수 있습니다.
ActivityGroup
의 잘못된 사용에 관한 문제 일 수 있습니다. 누구든지 도와 줄 수 있습니까?
내 첫 번째 질문에 대한 답변 주셔서 감사합니다 stackoverflow.