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'sでは、 C を起動するためonCreate()
に使用します。startActivityResult()
C では、ユーザーにボタンを表示します。ユーザーがボタンをクリックすると、C が呼び出さfinish()
れsetResult();
、BonActivityResult()
でメソッドを使用してfinish()
すべてのアプリケーションを終了しようとします。
問題は、ボタンを押した後に画面が黒くなることです。次にhierarchyviewer.bat
、ビューも参照します。驚いたことに、id を持つビューと、idR.id.content
のない別のルート ビューがあります。ツールは、アクティビティ B が一番上にあることを示しています。id のビューR.id.content
が のルート ビューであることはわかっていますが、呼び出されたActivity
後もまだそこにある理由がわかりません。finish()
ご存知のように、後に他のロジックはなく、finish()
他の受信者もそこにいません。または、他の受信者がブロックして終了することはできません。
多分それは私の間違った使い方の問題ですActivityGroup
。誰でも助けることができますか?
スタックオーバーフローに関する私の最初の質問に対する回答ありがとうございます。