如何在 Android 中完成堆栈上的最后 N 个活动?
How to finish last N activites on stack in Android?
我有 4 个活动:
A->B->C->D
当我从 C 转到 D 时,我想完成 B 和 C,这样当我按下后退按钮时,activity A 会恢复。有没有简单的方法可以做到这一点?
使用Intent.FLAG_ACTIVITY_CLEAR_TASK 将目标activity 设置为新根。此标志应与 FLAG_ACTIVITY_NEW_TASK
结合使用
class ActivityD : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_d)
}
override fun onBackPressed() {
Intent(this, ActivityA::class.java).apply {
flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK
startActivity(this)
}
}
}
您可以使用以下 adb 命令查看 activity 任务 (unix shell)
adb shell dumpsys activity activities | sed -En -e '/Stack #/p' -e '/Running activities/,/Run #0/p'
我有 4 个活动:
A->B->C->D
当我从 C 转到 D 时,我想完成 B 和 C,这样当我按下后退按钮时,activity A 会恢复。有没有简单的方法可以做到这一点?
使用Intent.FLAG_ACTIVITY_CLEAR_TASK 将目标activity 设置为新根。此标志应与 FLAG_ACTIVITY_NEW_TASK
结合使用class ActivityD : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_d)
}
override fun onBackPressed() {
Intent(this, ActivityA::class.java).apply {
flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK
startActivity(this)
}
}
}
您可以使用以下 adb 命令查看 activity 任务 (unix shell)
adb shell dumpsys activity activities | sed -En -e '/Stack #/p' -e '/Running activities/,/Run #0/p'