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 定义?他们不会被添加到后台。不确定这是否是您想要的。
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 定义?他们不会被添加到后台。不确定这是否是您想要的。