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. IS A 和 HAS A的区别

    IS A:一般是用作继承或者接口类.比如:中国人和外国人都是人,重点在:是一个... . HAS A:一般用作对象和他的成员的从属关系.比如:中国人和外国人都有眼睛.耳朵.嘴巴.重点在:有一个... ...

  2. JS验证输入网址

    function CheckUrl(a) {    var falg = true;    var regstr = /^http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w- . ...

  3. CubieTruck上安装mjpg_streamer

    最近手头项目需要用到一个上位机,需要在上位机上实现远程访问及视频监控.其中视频监控采用了网上资料较多的mjpg_streamer进行视频处理.在使用中遇到许多坑也一并记录下来. 首先安装依赖环境和检测 ...

  4. 解决Bringing up interface eth0: Device eth0 does not seem to be present, delaying initialization.

    一.问题描述 OS:centos 原因是拷贝虚拟机造成的. 使用vmworkstation打开虚拟机的时候,要选择copy而非move. 二.解决描述 网络上解决步骤各异,其实就一句话.只要保证vmw ...

  5. prolog 阶段总结

    http://blog.csdn.net/mwsong/article/details/1766382   到现在为止,我们已经对Prolog有了一个基本的了解,现在有必要对我们所学过的知识做一个系统 ...

  6. 如何在SqlServer中获取前端连接的IP地址,计算机名等信息

    在一些需求中,可能我们需要知道连接到SqlServer的前端程序的一些系统信息,比如前端连接的计算机名称,IP地址,什么时候开始请求连接,什么时候结束连接等信息. 如果你对SqlServer的系统函数 ...

  7. c#委托和事件的介绍

    委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递.事件是一种特殊的委托. (1). delegate delegate我们常用到的一种声明   Delegate至少0个参 ...

  8. LAMP环境

    LAMP =  Linux + Apache + MySQL + PHP    [1]     [2]      [3]     [4] [1]Linux是一套免费使用和自由传播的类Unix操作系统, ...

  9. 史航416第11次作业&总结

    作业1:冒泡排序 #include <stdio.h> ],int n); int main() { ],n,i; printf("输入一个整数n:"); scanf( ...

  10. 树莓派 3 alsa 声卡驱动

    /boot/config.txt dtparam=i2c_arm=on,audio=on