关于Android程序退出后内存释放的问题

转载 2016年08月30日 15:08:09

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);

}

Android 彻底关闭WebView,防止WebView造成OOM

Android上的WebView经常会造成一些问题,我现在就遇到了 = = 关闭Activity之后,WebView还在内存中占用,非常有可能造成OOM。但是即使在包含该webview的Activit...
  • YaphetZhao
  • YaphetZhao
  • 2015年09月17日 14:45
  • 8873

Android下Activity结束(finish())之后没有释放内存问题的解决方法初探

很多人(应该是所有用过DDMS或者是ANDROID自带的任务管理器)玩android细心一点 的就会发现,当打开一个app,进入主页面,跳到登陆画面,登陆之后返回到菜单, 再点击菜单上的任...
  • chen825919148
  • chen825919148
  • 2014年04月16日 14:14
  • 31625

Android下Activity结束(finish())之后没有释放内存问题的解决方法

很多人(应该是所有用过DDMS或者是ANDROID自带的任务管理器)玩android细心一点 的就会发现,当打开一个app,进入主页面,跳到登陆画面,登陆之后返回到菜单, 再点击菜单上的任...
  • u010623588
  • u010623588
  • 2016年11月07日 15:25
  • 2724

关于Android程序退出后内存释放的问题

做Android项目的时候发现一个问题:当应用程序退出了,点击"设置"查看应用程序,界面显示着可以点击"强制关闭". 我认为造成这样的原因是还有开启的activity没有被destroy,然后做...
  • liwei3gjob
  • liwei3gjob
  • 2012年11月21日 00:26
  • 5266

android 退出程序解决内存释放的问题

做Android项目的时候发现一个问题:当应用程序退出了,点击"设置"查看应用程序,界面显示着可以点击"强制关闭". 我认为造成这样的原因是还有开启的activity没有被destroy,然后做调...
  • woshiwxw765
  • woshiwxw765
  • 2014年04月25日 23:44
  • 1521

关于Android程序优化内存释放

当程序开发到一定壮大的程度时,就需要关注程序内存释放的问题了。而且会发现不是使用Adapter中使用ViewHolder View复用,图片显示压缩,就可以解决的了内存释放的问题了。这时候只能用到手动...
  • mingyue_1128
  • mingyue_1128
  • 2016年06月15日 13:07
  • 1405

QT5.3.0 QList<Object*> 内存释放问题

  • 2015年12月09日 14:29
  • 7.63MB
  • 下载

delphi 中由TObjectList对象Destroy引起内存释放的问题

delphi 环境 delphi XE7     今天在完善一个程序的时候,发现一个问题,有个功能重复打开就会触发内存释放错误。导致程序挂掉。以前是正常的,就是加了一个TObjectList变量。  ...
  • rznice
  • rznice
  • 2015年01月21日 17:38
  • 2075

Qt模拟Http Post上传文件行为—内存释放问题

最近在做一个小项目,需要向一个服务器批量上传本地文件,通过表单数据formData格式提交给服务器,于是需要用Qt模拟这一行为。关于Qt模拟Http Post行为的博文很多,可以参考博文:http...
  • sjy234sjy234
  • sjy234sjy234
  • 2017年06月25日 14:51
  • 662

奇葩开发问题总结(内存释放)

今天遇到了一个奇葩问题,进一个需要定位的Activity,定位后调用一次指定接口,接着我就发现,每退出再进入一次该Activity,接口调用次数就增加,唉,不断调试后,发现问题不奇葩,是我犯了二……留...
  • u013478336
  • u013478336
  • 2015年06月01日 22:18
  • 507
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于Android程序退出后内存释放的问题
举报原因:
原因补充:

(最多只允许输入30个字)