android2.2系统退出应用

    今天在做android2.1上的程序向android2.2上移值的时候,发现在2.1上的退出应用程序的代码在2.2上不起作用,具体如下:

    在2.1上用了以下方法来进行应用的退出:

 

final ActivityManager am = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);        	 
am.restartPackage(getPackageName());

<!-- 退出应用程序配置 -->
<uses-permission android:name="android.permission.RESTART_PACKAGES"/>

 用以上方法在2.1上可以退出整个应用,无论应用中原来的activity是否已经finish掉。此外还有以下两种方法

2.android.os.Process.killProcess(android.os.Process.myPid());
3.System.exit(0);

 也是可以退出整个应用的。但是当移值到2.2系统上后,以上三个方法均不能起到退出整个应用的效果,只能是关闭当前的activity,此时若Task栈中存在没有关闭的activity,就会弹出栈中的activity,进行出现不能退出整个应用的现像。

 

后来在网上也查了是否有相关的方法。给出的方法有下面几种,但结果都不理想:

1.

Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
activity.startActivity(startMain);
System.exit(0);//退出程序
 

 

这个程序做了个实验,发现可以退出主界面,但并不能完全退出当前的应用,按上述方法退出后,当再次进行应用时,会显示出原来没有finish掉的栈中的那个activity.因此,与其说这是个退出方法,不如说只是强制程序回到了主界面,而原应用并没有彻底退出。

2.

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

<!--权限-->
<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES">

 在2.2中,提供了上述一个方法,需要加入权限,但在实验时,也不能完全退出应用。

3.

在eoe上有人用Receiver来实现应用的退出。

http://www.eoeandroid.com/thread-62284-1-1.html

但是感觉跟finish()是一样的。具体没做实验

4.还有一个方法是利用反射得到api中没有暴露的方法,进行结束应用,具体网址忘记了。但实验时也不成功。

 

 

最后实在找不出一个能一下子退出整个应用的方法,只能在activity不用时finish()掉。如果有人找到合适的方法,请通知一下!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值