android 应用退出时释放应用所占内存

做项目的时候发现一个问题:当应用程序退出了,点击"设置"查看应用程序,界面显示着可以点击"强制关闭".

我认为造成这样的原因是还有开启的activity没有被destroy,然后做调试,之后发现开启的activity应该是全部都被

destroy了.但是结果还是显示可以点击"强制关闭".

由于这个问题我发现了一个更加严重的问题,那就是,在我应用程序退出之后,系统并没有释放掉我应用程序所占内存.

之后在网上查解决办法.说是有两个:

方式一:

Intent intent = new Intent(Intent.ACTION_MAIN);

intent.addCategory(Intent.CATEGORY_HOME);

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

this.startActivity(intent);

System.exit(0);


方式二:

android.os.Process.killProcess(android.os.Process.myPid());


----------------------------------------------------------------------------------------------------------------------------------------------------------------------

有的人说可以结束掉应用程序,但是不知道什么原因,我在试用了这两个方法之后都还是不能结束掉我的应用程序.

在在点击"设置"查看我应用的时候,界面还是显示可以点击"强制关闭".

但是,用这两个方法是可以释放掉应用程序所占内存的.

严重的问题解决了,那个可以点击"强制关闭"的问题貌似也不会造成什么影响.所以这个问题我也没解决了.

最后说下这两种方式和在哪使用吧.

第一种方式是退出虚拟机,使用这种方式,要注意的是,如果设备装有两个或多个应用中的activity的Category为HOME的

应用,那么每当退出这个应用的时候,设备都会让用户选择进入到哪个应用.

第二种方式是kill掉当前应用进程.它不会发生让用户选择进入哪一个应用这种情况.

在哪里使用的话,一般是在最后一个activity的onDestroy()方法中使用这两种方法

@Override

protected void onDestroy() {

// TODO Auto-generated method stub

super.onDestroy();

// release application's RAM

Intent intent = new Intent(Intent.ACTION_MAIN);

intent.addCategory(Intent.CATEGORY_HOME);

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

this.startActivity(intent);

System.exit(0);

}


文章链接:http://blog.csdn.net/murongshusheng/article/details/7700634


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值