Android 关闭全部Activity

当在Android应用中需要从DActivity关闭整个Activity栈时,可以使用Intent.FLAG_ACTIVITY_CLEAR_TOP配合启动模式singleTop。设置AActivity为singleTop模式,然后在D中启动A,这样会回退到A并清理栈中所有其他Activity。在A的onNewIntent中再finish(),即可实现关闭ABCD四个Activity的效果。

在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掉了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值