您可以使用结束活动 B开始活动startActivityForResult()
C。onActivityResult()
要开始活动 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();
}
}
}
而在Activity C里面使用setResult(Activity.RESULT_OK)
之前finish();
更新:
另一种方法是使用FLAG_ACTIVITY_NEW_TASK
并FLAG_ACTIVITY_CLEAR_TOP
从 Activity C 启动 Activity A。
Intent intent = new Intent(ActivitC.this, ActivityA.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
当您开始活动 C 时,另一种方法可能只是finish()
活动 B。因此,当您按回活动 C 时,它将直接移动到活动 A,因为活动 B 已经完成。