アクティビティCはstartActivityForResult()
、onActivityResult()
アクティビティBで開始できます。
アクティビティCを開始するには、
Intent intent = new Intent(ActivityB.this, ActivityC.class);
startActivityForResult(intent, 123);
アクティビティBでオーバーライドします
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode == 123){
if(resultCode == Activity.RESULT_OK){
finish();
}
}
}
そして、アクティビティCの内部ではsetResult(Activity.RESULT_OK)
以前に使用しますfinish();
アップデート:
もう1つの方法は、アクティビティCからアクティビティAを使用FLAG_ACTIVITY_NEW_TASK
して開始することです。FLAG_ACTIVITY_CLEAR_TOP
Intent intent = new Intent(ActivitC.this, ActivityA.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
もう1つの方法はfinish()
、アクティビティCを開始するときにアクティビティBだけにすることができます。したがって、アクティビティCをもう一度押すと、アクティビティBがすでに終了しているため、アクティビティAに直接移動します。