做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 sdk manager 无法更新,解决连不上dl.google.com的问题
- 解决Android Studio出现Failed to open zip file. Gradle's dependency cache may be corrupt的问题
- Android Studio 解决更新慢的问题
- 解决不同版本的eclipse或sdk所导致的android layout xml无法显示的问题
- Java与Android开发环境配置以及遇到的问题解决
- Android studio编译之后显示中文乱码的问题解决办法
- Android开发中遇到的问题(五)——Eclipse导入Android项目出现"Invalid project description overlaps the location of another project"错误的解决办法
- 关于eclipse 与OpenCV 配置频繁报错的问题总结Program "C:/SDK/android-ndk-xxx/ndk-build.cmd" is not found in PATH报错的解决!
- 使用 Android Studio 跑新浪微博SDK Demo遇到的问题及解决
- 解决Android 4.0以上版本中OptionsMenu菜单不显示ICON图标的问题