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. lambda匿名函数

    1.python中的匿名函数的格式 lambda  arg1,arg2...,argN:expression    (lambda关键字后,冒号":"前是参数,多个参数用逗号&qu ...

  2. Hibernate 中出现 users is not mapped 问题 (转)

    今天晚上自己试着用Hibernate去搭建一个Web工程,然后去实现一个简单的登录.         通过Hibernate 做查询操作的时候总是报出这样的错:                    ...

  3. redis 与 spring整合 hash 增删改操作 list增删改操作

    本人,对于以前redis的学习是非常痛苦的!近期将以前的东西捡起来.以博客的形式存储,以便于以后快速捡起来,并和广大同胞一起分享! 1):简单介绍 redis 是基于C语言开发. redis是一个ke ...

  4. Oracle数据库导入导出命令

    在建立oracle客户端的前提下,Net Manager中配置了数据库的连接,使用此命令 导出数据 pauseecho 正在备份老数据库...pauseexp user/pwd@配置名称 file=d ...

  5. HTTP权威指南笔记-2.URL与资源

    2.1 URI与URL.URN URL是浏览器寻找信息时所需的具体位置.URl是人们对HTTP和其他协议的常用访问点:浏览器指向一个URL,浏览器就会发送适当的协议报文向服务器获取内容. URI是一类 ...

  6. HttpClient接口测试之会话保持

    HttpClient接口测试之会话保持     HttpClient4.X自带会话保持功能,使用同一个HttpClient未关闭的连接即可保持登陆会话,如果多个HttpClient想要使用一个登陆会话 ...

  7. Python 3.6.0的sqlite3模块无法执行VACUUM语句

    Python 3.6.0的sqlite3模块存在一个bug(见issue 29003),无法执行VACUUM语句. 一执行就出现异常: Traceback (most recent call last ...

  8. SQL Server 【附】创建"商品管理数据库"、"学生选课数据库"的SQL语句

    附:(创建“商品管理数据库”的SQL语句) --建立"商品管理数据库"数据库-- create database 商品管理数据库 on(name='商品管理数据库_m', file ...

  9. 01.Sencha ExtJS 6 - Generate Workspace and Application

    生成workspace         下载gpl版本的ExtJs6         在https://www.sencha.com/legal/GPL/页面的右侧申请链接来下载,或者使用链接http ...

  10. 各版本CRM所需端口号

    以下是微软官方提供的CRM端口号列表,收藏一下: 4.0 :https://msdn.microsoft.com/en-us/library/dd979226(v=crm.6).aspx This s ...