使用Intent 将底层栈里所有的activity都清理掉

本文介绍了一种通过清理Activity栈来实现应用整体关闭的方法。具体做法是在应用启动时使用一个不可见的Activity作为栈底元素,当需要退出时,通过特定Intent跳转回该Activity并清除中间的所有Activity,最后调用finish()方法来完成整个流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        可以利用清理历史栈的方法,来巧妙关闭所有activity,首先用一个设置为不可见的activity A来启动程序,这个activity A的作用只是用来垫栈底,只有启动和退出程序才会用到这个activity,而你需要退出的时候,只需要跳转至这个activity A ,并让A finish自己就可以实现关闭所有的activity。

      Intent intent = new Intent();

     intent.setClass(B.this, A.class); //B为你按退出按钮所在的activity

     intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); //最关键是这句

     startActivity(intent);

Intent.FLAG_ACTIVITY_CLEAR_TOP使得处于栈底的A发挥推土机的作用,从最底层把栈里所有的activity都清理掉,再在自己的oncreate方法加一句finish结束自己,即可实现退出。不放心的话,可以在A的ondestroy方法中加上system.exit(0) ,连跳转过程中的线程也可以终止的。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值