Android完全退出方法汇总

本文介绍了两种在Android应用中实现完全退出的方法。一种是推荐使用的FLAG_ACTIVITY_CLEAR_TOP方法,通过设置Intent标志并传递退出信号来关闭当前Activity上方的所有Activity,最终使主Activity执行finish()方法。另一种是直接杀掉进程的方法,但这会干扰正常的Android应用生命周期。

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


--andy.xie2012-6

我们在开发一个android应用时,有可能有N个Activity,怎么样在任意一个activity里面完全退出程序了?

 

FLAG_ACTIVITY_CLEAR_TOP方法(强烈推荐)

FLAG_ACTIVITY_CLEAR_TOP:

如果设置,并且这个Activity已经在当前的Task中运行,因此,不再是重新启动一个这个Activity的实例,而是在这个Activity上方的所有Activity都将关闭,然后这个Intent会作为一个新的Intent投递到老的Activity(现在位于顶端)中。

    例如,假设一个Task中包含这些Activity:A,B,C,D。如果D调用了startActivity(),并且包含一个指向Activity B的Intent,那么,C和D都将结束,然后B接收到这个Intent,因此,目前stack的状况是:A,B。

 

使用方法:

       当我们点击“退出程序”时,可以从当前Activity跳转到主Activity(就是我们打开程序最先启动的那个Activity),通过Intent告诉主Activity我要退出程序,然后主Activity调用finish()方法即可。

       比喻如果已经打开Activity:A,B,C,D,这时从D跳转到A时会自动把B和C都关闭,然后A读取到Intent带的退出信号后执行finish,这样就实现完全退出了。

Intent i = new Intent(this, A.class);

i.setFlags(Intent. FLAG_ACTIVITY_CLEAR_TOP);

i.putExtras(“exit”,  true);

startActivity(i);

 

2  杀掉进程方法(不推荐,这样会打乱android 程序的生命周期)

       1)System.exit(0);

       2)restartPackage(Android 1.5 - 2.1);

 

<uses-permissionandroid:name="android.permission.RESTART_PACKAGES" />

 

ActivityManager am =(ActivityManager)getSystemService (Context.ACTIVITY_SERVICE); 

am.restartPackage("packagename"); 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值