首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 系统运维 >

finish()和System.exit(0)的区别

2012-09-27 
finish()跟System.exit(0)的区别Activity是有生命周期的,onCreate,onStart,onResume,onPause,onStop,onDes

finish()跟System.exit(0)的区别
    Activity是有生命周期的,onCreate,onStart,onResume,onPause,onStop,onDestroy...
    finish是Activity的方法,仅仅针对Activity,当调用finish()时,只是将活动推向后台,并没有立即释放内存,活动的资源并没有被清理;
    当调用System.exit(0)时,杀死了整个进程,这时候活动所占的资源也会被释放。
    其实android的机制决定了用户无法完全退出应用,当你的application最长时间没有被用过的时候,android自身会决定将application关闭了。
   要退出还可以这样:

]ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);     am.restartPackage(getPackageName());但记得在Androidmanifest.xml里添加权限<uses-permission Android:name="android.permission.RESTART_PACKAGES"></uses-permission>
1 楼 夜色蓝 2011-12-14   那就是因为Activity只是退到了后台,所以finish()方法后面的命令依然会执行了 ? 2 楼 lxcaoxin 2011-12-14   夜色蓝 写道那就是因为Activity只是退到了后台,所以finish()方法后面的命令依然会执行了 ?
不是这样理解的,只是关闭了当前的Activity,但还保存在内存中

热点排行