关于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程序退出后内存释放的问题

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

关于Android程序优化内存释放

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

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

今天遇到了一个奇葩问题,进一个需要定位的Activity,定位后调用一次指定接口,接着我就发现,每退出再进入一次该Activity,接口调用次数就增加,唉,不断调试后,发现问题不奇葩,是我犯了二……留...

opencv中有关内存释放的一些问题

原文转载自:http://blog.csdn.net/xiaowei_cqu/article/details/75868471.内存泄露内存泄露是说没有释放已经不能使用的内存,这里一般指的是堆内存。比...

linux下内存释放问题

linux下内存释放问题 细心的朋友会注意到,当你在linux下频繁存取文件后,物理内存会很快被用光,当程序结束后,内存不会被正常释放,而是一直作为caching.这个问题,貌似有不少人在问...

对于php内存释放问题

大家在使用PhpExcel类时,当打开一个比较大的excel数据文档,会出现Fatalerror: Allowed memorysize of 67108864 bytes exhausted (tr...

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

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

MFC C++ 中的内存释放问题

使用MFC编程的朋友们都知道,当我们如下调用了: CDC *pDC=GetDC();//获得窗口的设备描述表 接下来我们做完绘图功能后要调用: ReleaseDC(pDC);//释放设备描述表这样...

在IE下的JS编程需注意的内存释放问题

在IE下的JS编程中,以下的编程方式都会造成即使关闭IE也无法释放内存的问题,下面分类给出:      1、给DOM对象添加的属性是一个对象的引用。 范例:    var MyObjec...
  • e_wsq
  • e_wsq
  • 2011年12月27日 20:21
  • 319
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于Android程序退出后内存释放的问题
举报原因:
原因补充:

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