startActivityForResult
を使用して別のアクティビティから結果を取得する方法を知っていますが、問題は3つのアクティビティA、B、Cがあります。すべての活動に戻る必要があります。現在のアクティビティから開始されていないアクティビティから特別な値を取得
アクティビティAからアクティビティBを開き、アクティビティBからアクティビティCを開いたときアクティビティCで戻るボタンを押したときに、結果をアクティビティAに戻すにはどうすればよいですか?
活動A:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1) {
if(resultCode == Activity.RESULT_OK){
int result=data.getIntExtra("result", 0);
SetNotification(result);
}
}
}
活動C:
@Override
public void onBackPressed() {
Intent returnIntent = new Intent(C.this, A.class);
returnIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
returnIntent.putExtra("result", unreadCount);
startActivity(intent);
}
を次にあなたがAさんのonCreate()であなたのエクストラを取得することができます
//This works for activity B which is started directly from activity A
@Override
public void onBackPressed() {
Intent returnIntent = new Intent();
returnIntent.putExtra("result", unreadCount);
setResult(Activity.RESULT_OK,returnIntent);
finish();
}
を保護次のようにActivityBを行うことができます – clavio