文章目录

  • Activity生命周期
    • 一、Activity生命周期回调方法
      • 1、onCreate()
      • 2、onStart()回调方法
      • 3、onResume()回调方法
      • 4、onPause()回调方法
      • 5、onStop()回调方法
      • 6、onRestart()回调方法
      • 7、onDestroy()
    • 二、利用Log类输出信息
      • 1、Log.v()方法
      • 2、Log.d()方法
      • 3、Log.i()方法
      • 4、Log.w()方法
      • 5、Log.e()方法
    • 回调方法案例演示
      • 1、创建安卓应用
      • 2、主布局资源文件
      • 3、字符串资源文件
      • 4、主界面类实现功能
      • 5、添加消息过滤器
      • 6、启动应用,查看日志

Activity生命周期

一、Activity生命周期回调方法

1、onCreate()

您必须实现此回调,它会在系统首次创建 Activity 时触发。Activity 会在创建后进入“已创建”状态。在 onCreate() 方法中,您需执行基本应用启动逻辑,该逻辑在 Activity 的整个生命周期中只应发生一次。例如,onCreate() 的实现可能会将数据绑定到列表,将 Activity 与 ViewModel 相关联,并实例化某些类作用域变量。此方法会接收 savedInstanceState 参数,后者是包含 Activity 先前保存状态的 Bundle 对象。如果 Activity 此前未曾存在,Bundle 对象的值为 null。

2、onStart()回调方法

onCreate() 退出后,Activity 将进入“已启动”状态,并对用户可见。此回调包含 Activity 进入前台与用户进行互动之前的最后准备工作。

3、onResume()回调方法

系统会在 Activity 开始与用户互动之前调用此回调。此时,该 Activity 位于 Activity 堆栈的顶部,并会捕获所有用户输入。应用的大部分核心功能都是在 onResume() 方法中实现的。
onResume() 回调后面总是跟着 onPause() 回调。

4、onPause()回调方法

当 Activity 失去焦点并进入“已暂停”状态时,系统就会调用 onPause()。例如,当用户点按“返回”或“最近使用的应用”按钮时,就会出现此状态。当系统为您的 Activity 调用 onPause() 时,从技术上来说,这意味着您的 Activity 仍然部分可见,但大多数情况下,这表明用户正在离开该 Activity,该 Activity 很快将进入“已停止”或“已恢复”状态。
如果用户希望界面继续更新,则处于“已暂停”状态的 Activity 也可以继续更新界面。例如,显示导航地图屏幕或播放媒体播放器的 Activity 就属于此类 Activity。即使此类 Activity 失去了焦点,用户仍希望其界面继续更新。
您不应使用 onPause() 来保存应用或用户数据、进行网络呼叫或执行数据库事务。有关保存数据的信息,请参阅保存和恢复 Activity 状态。
onPause() 执行完毕后,下一个回调为 onStop()或 onResume(),具体取决于 Activity 进入“已暂停”状态后发生的情况。

5、onStop()回调方法

当 Activity 对用户不再可见时,系统会调用 onStop()。出现这种情况的原因可能是 Activity 被销毁,新的 Activity 启动,或者现有的 Activity 正在进入“已恢复”状态并覆盖了已停止的 Activity。在所有这些情况下,停止的 Activity 都将完全不再可见。
系统调用的下一个回调将是 onRestart()(如果 Activity 重新与用户互动)或者 onDestroy()(如果 Activity 彻底终止)。

6、onRestart()回调方法

当处于“已停止”状态的 Activity 即将重启时,系统就会调用此回调。onRestart() 会从 Activity 停止时的状态恢复 Activity。
此回调后面总是跟着 onStart()。

7、onDestroy()

系统会在销毁 Activity 之前调用此回调。
此回调是 Activity 接收的最后一个回调。通常,实现 onDestroy() 是为了确保在销毁 Activity 或包含该 Activity 的进程时释放该 Activity 的所有资源。

二、利用Log类输出信息

在调试代码时,需要查看调试信息,就需要用安卓的android.util.Log类,它有5个常用方法。注意:不同打印方法使用时,都带上(String tag, String msg)参数,tag表示打印信息的标签,msg表示需要打印的信息。

1、Log.v()方法

输出颜色为黑色的,任何消息都会输出,这里的v代表verbose啰嗦的意思,平时使用就是Log.v(“”,“”);

2、Log.d()方法

输出颜色是蓝色的,仅输出debug调试信息,但会输出上层的信息,过滤起来可以通过DDMS的Logcat标签来选择。

3、Log.i()方法

输出颜色为绿色,输出一般提示性消息,不会输出Log.v和Log.d的信息,但会显示i、w和e的信息。

4、Log.w()方法

输出颜色为橙色,输出警告信息,一般需要我们注意优化安卓代码,同时选择它后还会输出Log.e的信息。

5、Log.e()方法

输出颜色为红色,仅显示红色的错误信息,需要我们认真分析,查找出错原因。

回调方法案例演示

1、创建安卓应用

基于Empty Activity模板
配置项目信息

单击【Finish】按钮,完成项目初始化

2、主布局资源文件

将约束布局改成线性布局,并设置标签控件相关属性

3、字符串资源文件

在strings.xml文件里修改app_name变量值,添加新变量test_life_cycle

4、主界面类实现功能

在MainActivity里定义标记常量TAG

5、添加消息过滤器

为了更好地查看本应用的调试信息,需要添加消息过滤器。创建消息过滤器life_cycle_filter,日志标记为life_cycle

6、启动应用,查看日志

启动应用,查看LogCat里的消息

单击【Home】键,返回手机应用桌面
此时,应用窗口被桌面遮住,查看日志消息

单击【Overview】键,查看最近应用列表

最近打开的应用就是【生命周期】

单击在后台运行的【生命周期】应用,其窗口又重回前台,查看日志信息

按【Back】按键,其实无法关闭【生命周期】应用

应该按【Overview】键,选中【生命周期】应用向上滑动,即可关闭该应用

Activity生命周期回调方法相关推荐

  1. Java持久性API(JPA)第7讲——实体生命周期及生命周期回调方法

    源贴地址:http://blog.csdn.net/javaeeteacher/archive/2007/06/25/1665345.aspx 目标与主要内容: u        掌握实体的生命周期: ...

  2. Activity生命周期记忆方法(转)

    关于activity生命周期很简单,但总是不能记得很清楚,发现一篇博文记忆方式不错. 转自:http://www.cnblogs.com/kofi1122/archive/2011/04/10/201 ...

  3. Activity生命周期回调是如何被回调的?

    像java程序有main方法作为入口一样,Android程序也有入口,ActivityThread的main方法就是Android程序的入口,如下图: 接着看到调用ActivityThread的att ...

  4. android服务进阶,我的Android进阶之旅------Android服务的生命周期回调方法

    先引用一段官网上的文字 ======================================================================================== ...

  5. 安卓学习笔记06:Activity生命周期与启动模式

    文章目录 零.学习目标 一.Activity生命周期 1.了解Activity生命周期 2.Activity生命周期简化图 (1)Activity存在与否 (2)Activity可见与否 (3)Act ...

  6. Android全面解析之Activity生命周期

    前言 很高兴遇见你~ 欢迎阅读我的文章. 关于Activity生命周期的文章,网络上真的很多,有很多的博客也都讲得相当不错,可见Activity的重要性是非常高的.事实上,我猜测每个android开发 ...

  7. Activity与调用线(三):Activity生命周期源码解析

    前言 很高兴遇见你~ 欢迎阅读我的文章. 关于Activity生命周期的文章,网络上真的很多,有很多的博客也都讲得相当不错,可见Activity的重要性是非常高的.事实上,我猜测每个android开发 ...

  8. Android 插件化原理解析——Activity生命周期管理

    之前的 Android插件化原理解析 系列文章揭开了Hook机制的神秘面纱,现在我们手握倚天屠龙,那么如何通过这种技术完成插件化方案呢?具体来说,插件中的Activity,Service等组件如何在A ...

  9. Activity生命周期的学习和验证

    1.引子 Activity就像是英文词汇本的Abandon,开篇就能碰到,关于Activity生命周期的博客教程非常多,侧面说明Activity非常重要,其中的Activity的生命周期又是重中之重, ...

最新文章

  1. caffe读书笔记1 CIFAR-10在caffe上进行训练与学习
  2. 信息安全系统设计基础第六周学习总结—20135227黄晓妍
  3. pyscripter与python的关系_【转】PyScripter启动出错:Python could not be properly initialized. We must quit....
  4. 《计算机视觉:模型、学习和推理》一3.6 正态逆伽马分布
  5. 可以直接拿来用的15个jQuery代码片段
  6. Filter handling in SAP gateway
  7. IOC操作Bean管理注解方式(完全注解开发)
  8. 如何理解if __name__=='__main__'?
  9. 起泡排序算法_气泡排序算法
  10. Android Sensors (3) 传感器坐标系统
  11. 调用打码平台api获取验证码 (C#版)
  12. 线性代数 --- 什么是矩阵的逆?(个人笔记扫描版)
  13. 模电、数电、电路面试题
  14. GPS测量中四参数、七参数的概念及意义
  15. react 输入框 回车事件切换
  16. ijkplayer播放器架构从原型到升级
  17. 精益软件度量之读书笔记(一)度量和组织目标
  18. putty 报错no supported authentication methods available (server sent:publickey...)
  19. 机器人工程就业面如何前景是否广阔
  20. 寄存器(1)寄存器概念,x86寄存器种类说明及汇编代码详解

热门文章

  1. 华为数通Hcia 6、IP协议
  2. mac下mysql的端口号3307修改
  3. 【activiti】activiti环境配置
  4. linux系统划分VLAN或trunk口的方法
  5. dede php语句调用,dede织梦在{dede:php}中调用文章id或aid
  6. vmospro启动黑屏_VMOS Pro,安卓手机上的虚拟机
  7. Python3_Appium_QQ 实战
  8. windows操作系统有哪些版本
  9. snort的安装、配置和使用
  10. 人际交往能力远比你想象的重要