当前位置: 代码迷 >> 综合 >> Activity的三种关闭方法分析(finish;onDestory;exit)
  详细解决方案

Activity的三种关闭方法分析(finish;onDestory;exit)

热度:56   发布时间:2024-01-03 11:28:55.0

Activity.finish()

Call this when your activity is done and should be closed. 

在你的activity动作完成的时候,或者Activity需要关闭的时候,调用此方法。

当你调用此方法的时候,系统只是将最上面的Activity移出了栈,并没有及时的调用onDestory()方法,其占用的资源也没有被及时释放。因为移出了栈,所以当你点击手机上面的“back”按键的时候,也不会找到这个Activity。


Activity.onDestory()

the system is temporarily destroying this instance of the activity to save space.

系统销毁了这个Activity的实例在内存中占据的空间。

在Activity的生命周期中,onDestory()方法是他生命的最后一步,资源空间什么的都没有咯~~。当重新进入此Activity的时候,必须重新创建,执行onCreate()方法。


System.exit(0)

这玩意是退出整个应用程序的,是针对整个Application的。将整个进程直接KO掉。


写在最后

在自己做的项目中,根据需要使用的时候finish()方法。只有三个页面,它们之间的跳转情况如下:

       主页面 -- 登录页  -- 注册页  

其中注册页面中的一个按钮是“使用已有帐号登录”,事件是回到上一个Activity进行登录。当我对这个按钮不停的测试几次之后,按“back”键的时候,很遗憾,并不是按照理想的顺序:主页面 --  登录页  --  注册页  

而是刚刚测试时候的逆向顺序:登录页  -- 注册页 跳完几个循环之后,才回到主页面。想想也是,Activity不停的产生,不停的塞到那个栈里面,一个一个的向外面拿,当然是这样的顺序啦。

这里面Activity页面跳转动作事件完全是通过startActivity(new Intent(.....))来实现的。经过一些资料的查找,重新认识了上面的几个方法,根据此处的实际情况和需要,选择调用当前Activity对象的finish()方法。 


开始想多多翻译一些文档上面的英文,使其更具正确性,但是很多未知的单词让我小腿有点软。偶弥陀佛


参考资料来自:

http://www.cnblogs.com/pengwang/archive/2011/04/30/2033548.html
  相关解决方案