android Activity类中的finish()、onDestory()和System.exit(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()方法。

android Activity类中的finish()、onDestory()和System.exit(0) 三者的区别的更多相关文章

  1. How to use Android Activity's finish(), onDestory() and System.exit(0) methods

    Activity.finish() Calling this method will let the system know that the programmer wants the current ...

  2. Android:finish()与System.exit(0)之间的区别

    finish()与System.exit(0)都是用来退出.但是两者还是有一定的区别: finish是Activity的类,仅仅针对Activity,当调用finish()时,只是将活动推向后台,并没 ...

  3. android Process.killProcess 和 System.exit(0) 区别

    1 Process.killProcess  和 System.exit(0) 两个都会 kill 掉当前进程. 你可以打开 DDMS 查看进程号,或 adb shell 进入 shell 然后 ps ...

  4. android开发中关于继承activity类中方法的调用

    android开发中关于继承activity类中的函数,不能在其他类中调用其方法. MainActivity.java package com.example.testmain; import and ...

  5. 安卓开发-Activity中finish() onDestroy() 和System.exit()的区别

    Activity.finish()Call this when your activity is done and should be closed. 在你的activity动作完成的时候,或者Act ...

  6. 安卓开发-Activity中finish() onDestroy() 和System.exit()的区别(转)

    Activity.finish()Call this when your activity is done and should be closed. 在你的activity动作完成的时候,或者Act ...

  7. android开发时,finish()跟System.exit(0)的区别

      这两天在弄Android,遇到一个问题:所开发的小游戏中有背景音乐,玩的过程中始终有音乐在放着,然后在我退出游戏后,音乐还在播放! 我看了一下我最开始写的退出游戏的代码,就是简单的finish() ...

  8. android finish和system.exit(0)的区别

    finish是Activity的类,仅仅针对Activity,当调用finish()时,只是将活动推向后台,并没有立即释放内存,活动的资源并没有被清理:当调用System.exit(0)时,杀死了整个 ...

  9. android中 System.exit(0)的理解

    public class HelloGoodbye{ try{ System.out.println(“Hello World”); System.exit(0); } finally { Syste ...

随机推荐

  1. Fiddler测试WebApi的Post方法报错

    标题头要加 Content-Type: application/json,Request Body中写json数组.

  2. 在线c++编译器(gcc)

    这几年c++标准委员会活跃起来,C++11.14标准相续推出.对于想尝鲜又怕麻烦(visual studio 更新慢,对标准的支持力度也不够.对于使用gcc的,替换系统的gcc版本或者安装个mingw ...

  3. Neural Network学习(二)Universal approximator :前向神经网络

    1. 概述 前面我们已经介绍了最早的神经网络:感知机.感知机一个非常致命的缺点是由于它的线性结构,其只能做线性预测(甚至无法解决回归问题),这也是其在当时广为诟病的一个点. 虽然感知机无法解决非线性问 ...

  4. eclipse的快捷键(写给eclipse新手)

    Eclipse常用的快捷键 1.常用的快捷键 Alt+/:常用于补全单词.方法,以及内容辅助,可以省很多事情 Ctrl+1:用于全局,快速修正 Ctrl+D  删除整行 Ctrl+F   用于全局 , ...

  5. Activiti开发环境配置

    Ubuntu安装 1.下载Ubuntu安装镜像 http://www.ubuntu.com/download/ 2.制作ISO U盘安装镜像  不能用Ultraiso制作U盘启动镜像,新版的Ubunt ...

  6. js 和 jq 控制 checkbox

    判断checkbox是否选中  1. $("#id").attr("checked") 在jquery 1.6前(含1.6),返回值是boolean类型的tru ...

  7. mvc 导入excel表格

    <script> $(function () { $("#Attachment").change(function () { var att = $("#At ...

  8. XML序列化与反序列化

    public static class XmlHelper { private static void XmlSerializeInternal(Stream stream, object o, En ...

  9. ORM即 对象-关系映射(转自:微冷的雨)

    ORM即 对象-关系映射: 将数据库中的数据关系表,映射为实体对象. 灵动思绪EF(Entity FrameWork) 作者: 微冷的雨  来源: 博客园  发布时间: 2013-01-22 16:2 ...

  10. 【SVN】Error running context: 由于目标计算机积极拒绝,无法连接

    SVN服务没开启,步骤如下: 1.打开[控制面板]→[管理工具]→[服务]: 2.找到[visual SVN Sever],右击选择[启动]: 3.服务开启后,导入数据就成功了!