Return 到特定 Activity 在 2 种不同的条件下按下后退按钮 Kotlin

Return to Specific Activity in 2 different Condition when Back button Pressed Kotlin

Activity A,B,C,D 。第一个路径是 A->C->D 。当从 D 按下后退按钮时,它会像 D->C->A。但是我的要求是D->A。 在同一个应用程序中,我有另一个条件。第二条路径是 A->B->C->D。当从 D 按下后退按钮时,它会像 D->C->B->A.But 我的要求一样发生是D->A。 如何在我的应用程序中轻松满足这两个要求? 但请注意,当从 C 单击返回时,它应该转到 B。

像这样在 D 中覆盖 onBackPressed()

@Override
public void onBackPressed() {
    Intent intent = new Intent(this, A.class);
    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_SINGLE_TOP);
    startActivity(intent);
    finish();
}

这将从堆栈中删除 D 和 A 之间的所有活动,并return到 A 的现有实例。

注意:这是 Java,不是 Kotlin,但您应该能够弄清楚如何 Kotlinize 代码 ;-)

有两个选项

1 ) 通过 BackPress Kotlin:

override fun onBackPressed() {
  val intent = Intent(this, A::class.java)
  intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_SINGLE_TOP)
  startActivity(intent)
  finish()
}

2)来自 Manifest.xml

如何为相关 activity 添加清单文件:

android:noHistory="true"

到 B 和 C 的 activity 定义?他们不会被添加到后台。不确定这是否是您想要的。