在App中依此打开 A→B→C→D 四个Activity,在D Activity finish的同时finish掉其他的全部Activity
不建议使用system(0)
解决方法:
在D中使用以下代码:
val intent_finish_all = Intent()
intent_finish_all.setClass(this,A::class.java)
.setFlag(Intent.FLAG_ACTIVITY_CLEAR_TOP)
startActivity(intent_finish_all )
finish()
结束D Activity的同时结束了B,C
A的Manifest.xml配置成android:launchMode="singleTop"
A因为是singleTop,不会触发OnCreate,而是调用onNewIntent
在A中处理:
override fun onNewIntent(intent: Intent?) {
super.onNewIntent(intent)
finish()
}
此时ABCD四个Activity都被finish掉了
当在Android应用中需要从DActivity关闭整个Activity栈时,可以使用Intent.FLAG_ACTIVITY_CLEAR_TOP配合启动模式singleTop。设置AActivity为singleTop模式,然后在D中启动A,这样会回退到A并清理栈中所有其他Activity。在A的onNewIntent中再finish(),即可实现关闭ABCD四个Activity的效果。

490

被折叠的 条评论
为什么被折叠?



