A、B、Cの3つのアクティビティがあります。
AはBでstartActivityForResult(getIntent(), ACTIVITY_B);
始まり、BはCで始まりstartActivityForResult(getIntent(), ACTIVITY_C);
ます。ACTIVITY_B
およびACTIVITY_C
は、アクティビティ間で同じ値を持つ定数です。
CがRESULT_OKで戻ると、Bは次のコードで再起動されます。
if (resultCode == Activity.RESULT_OK){
finish();
startActivityForResult(getIntent(), ACTIVITY_B);
}
これは正常に機能します。
Bが(メニュー項目をクリックして)戻る必要がある場合、Bはアクティビティ結果を設定します。
public boolean onMenuItemSelected(int featureId, MenuItem item) {
switch(item.getItemId()) {
case MENU_CONFIRM:
System.out.println("Setting Result to RESULT_OK");
setResult(Activity.RESULT_OK);
finish();
return true;
}
return super.onMenuItemSelected(featureId, item);
}
ただし、アクティビティA( )のようにsetResult(Activity.RESULT_OK);
常に受信されるため、が無視されていることがわかります。2.3を使用しています。RESULT_CANCEL
onActivityResult
手がかりはありますか?