アクティビティ (たとえば A) では、別のアクティビティ (B) の結果に応じて特定のタスクを実行する必要があります。startActivityForResult() を使用してアクティビティ B を開始します。擬似コードは次のようなものです: (アクティビティ A)
//Statements
//startActivityForResult(activityB)
//get the result in some local variable for activity A. result is a boolean
//if(result==true) do something
//else do something else
今私が直面している問題は、アクティビティ B を開始した後、B から結果が到着するのを待たずに、続行してブール結果のデフォルト値を使用することです。解決策はありますか?
この特定のブロックが別のスレッドにあった場合、同期ブロックを作成し、アクティビティ B の開始後に wait() を発行し、次に onActivityResult() で notify() を発行できます。でも、スレッドが 1 つしかないので、それはオプションではありませんよね?
activityB は、Yes/No のユーザー入力を受け取り、それを返すことに注意してください。そのため、開始してもすぐに結果が得られるわけではありません