Activity Lifecycle

作者: PANGYAO | 来源:发表于2017-05-27 22:18 被阅读123次

最近准备面试,想整理一些比较基础的问题,方便面试前可以快速的浏览,可以用比较简洁的方式,让面试官可以清楚地明白我想表达的内容。

生命周期 ( Activity Lifecycle )

首先如果是纸笔考试的话,我会默写下这一张图,但这张图很深硬,而且并不好理解,也不好记忆。

activity_lifecycle.png

如果是谈话的方式

首先会介绍 onCreate(),启动Activity的第一个方法,主要是初始化资料,以及指定画面资源 setContentView() 呈现目前的 Layout.xml,和包含一些需要初始化的组件。

接着 OnStart(),适合执行画面组件的内容。比方说当 Activity 沉到背景后,如果把设定的内容放在 onCreate(),当唤醒后会跳过 onCreate(),直接执行 OnStart()。比如记忆账号、密码 EditText。

onResume(),如对 Button 或 EditText 做点击的动作,此时会获得焦点,进行我们设计好的动作,比如输入或确认的动作,简单来说是 Activity 与使用者互动。

onPause() : 组件暂停,暂停执行中的工作和线程。onPause() 执行完后,通常会马上再执行 onStop()部分,但有例外,如果是碰到Dialog,没有完全遮盖住屏幕,那么便会在 onPause()停止,操作完 Dialog后,再按照原本的生命周期来运行。

onStop() : 停止,停止执行中的工作和线程,画面完全消失,但Activity还留在后台。

onDestory() : 销毁Activity,清除所有建立的资源,生命周期结束,包含GC回收动作。

如果说到这边面试官没有打断,甚至示意让继续说下去,那么我会告诉他几个个常见的动作。

  1. 点选主画面按钮
    onPause() > onStop()
  2. 开启相机或另一个 Activity 或进入待命状态
    onPause() > onStop(),当 Activity 结束或屏幕结束待命 onRestart() > onStart() > onResume()
  3. A Activity 切换至 B Activity
    A onPause() > B onCreate() > B onStart() > B onResume() > A onStop()
  4. 关闭 B Activity
    B onPause() > A onRestart() > A onStart() > A onResume > B onStop() > B onDestory()

*在画面转向时,生命周期会重新执行。我猜面试官如果没有当下问这个问题,我不会说死,当他之后再问也可以比较从容地回答这个问题。

如果要避免重新执行生命周期
可至 AndroidManifest.xml 设定 android:configChages=”oriention|screensize”;
这样就只会执行onConfigurationChanged()。

补充 :

  1. onCreate只能执行一次,onStart()能执行多次
  2. onStop() 中 Activty 还没有被销毁,还存在内存中,可以透过切换Activity回复。onDestory() 是已经摧毁。
  3. 不要再 onStart()执行,判断屏幕方向代码,否则会有无限循环问题。

这篇文章只是留下一些纪录,如果有甚么问题欢迎各位再提出来

相关文章

  • Jetpack-Lifecycle源码解析

    Lifecycle源码解析 源码版本:Lifecycle:2.4.0androidx.activity:activ...

  • Activity生命周期

    官方文档 Understand the Activity Lifecycle

  • Lifecycle 使用和源码原理解析

    一、Lifecycle是什么? JetPack.Lifecycle能够监听Activity/Fragment生命周...

  • CHA1-Structure——6.Activity的生命周期

    原文:Activity Lifecycle —How does an activity work? 背景 当用户浏...

  • Activity Lifecycle

    最近准备面试,想整理一些比较基础的问题,方便面试前可以快速的浏览,可以用比较简洁的方式,让面试官可以清楚地明白我想...

  • Activity Lifecycle

    了解每一个方法的回调时机并在其中填充相应功能,使得确保app能够像用户期望的那样执行是很有必要的。如何实现一个符合...

  • Activity LifeCycle

    后续文章都是依据视频教程按照自己想法简单整理的视频教程来自B站UP主 ongway777 生命周期 官方生命周期图...

  • The Activity Lifecycle

    系统提供了 6 个回调方法来处理 Activity 生命周期中不同的状态:onCreate(), onStart(...

  • Architecture Components 知识梳理(2)

    一、概述 在学习完Lifecycle之后,我们如何通过Lifecycle让除了Activity/Fragment之...

  • Jetpack -Lifecycle

    一、简介 Lifecycle :Lifecycle 包含有关Activity与Fragment生命周期状态的信息,...

网友评论

    本文标题:Activity Lifecycle

    本文链接:https://www.haomeiwen.com/subject/pwzqfxtx.html