activity生命周期

目录

 

前言

原文概述:

典型情况下的生命周期:

生命周期方法详解

关于Activity生命周期的几个结论:

关于典型情况下生命周期的两个问题:

异常情况下的生命周期:

资源相关的系统配置发生改变导致Activity被杀死并重建

资源内存不足导致优先级低的activity被杀死

设置在系统某些资源发生改变的时候不重新创建activity

Android资源配置改变对于activti而言发生了什么?

关于资源配置改变的应用(猜想)


前言

熟悉android开发的朋友都知道activity可以说是我们日常开发中最常见的一个组件。它承载了与用户的界面交互功能。因此深入了解activity对日常开发会有很大的帮助。今天学习的内容主要来自《Android开发艺术探索》和我自己平时工作中遇到的一些问题详解。

原文概述:

基本概念:

  1. 典型情况下的生命周期:指在用户参与的情况下,Activity所经过的生命周期的改变。

  2. 异常情况下的生命周期:指activity被系统回收或者由于当前设备的Configuration发生改变从而导致Activity被销毁重建。

典型情况下的生命周期:

生命周期方法详解

参见谷歌官方的一张图片:

onCreate:表示activity正在被创建,这个是activity的第一个生命周期方法,在这个方法中我们可以做一些初始化工作。如setContentView去加载界面的布局资源,初始化activity所需要的数据。

onStart:当onCreate()退出时,活动进入Started状态,Activity对用户可见。但是还不能进行交互。

onResume:Activity进入可以交互的状态,这个时候Activity位于任务栈的顶部,并且能够捕获用户的所有输入,应用程序的大多数核心功能都在onResume中实现。同onStart相比较两者都是出于可见的状态,但是onStart时Activity还在后台,不能交互,onResume时Activity在应用的前台并且可以直接进行交互。

onPause:表示activity正在停止,这个时候Activity任然可见,但是不能进行交互。不应该在onPause()保存应用程序或用户数据,进行网络调用或执行数据库事务。在onPause执行完成后下一个执行onResume还是onStop取决于进入Paused后的状态变化。

onStop:当activity不可见的时候会调用这个方法。原因可能是:新的activity开始或activity被销毁。

onRestart:当处于Stoped状态的activity重新启动的时候会调用这个方法。这个方法后紧接着会调用onStart 。

关于Activity生命周期的几个结论:

  1. 针对一个特定的Activity,第一次启动的时候其生命周期方法如下:onCreate -> onStart -> onResume

  2. 当用户打开新的activity或回到桌面的时候onPause -> onStop会调用。特殊情况下(新的activity是透明主题)当前activity不会调用onStop

  3. 当用户再次回到原来的activity(Activity未被销毁的情况下), 回调如下: onRestart -> onStart -> onResume

  4. 当用户按返回键回退的时候 ,回调如下:onPause -> onStop -> onDestory

  5. activity被系统回收后,重新进入会走新的创建的流程(和1相同)。

  6. 对于整个activity的生命周期而言,onCreate和onDestory是配对的,分别标识这创建和销毁,并且只可能有一次调用。onStart和onStop是配对的,onResume和onPause是配对的,他们都有可能多次调用

关于典型情况下生命周期的两个问题:

  1. onStart、onResume、onPause和onStop本质区别?

    答:onstart和onstop是针对activity是否在前台可见而言来进行回调的。onResume和onPause是针对activity是否在前台可交互而言的,起重点是可交互。

  2. 当前的activity A 启动Activity B他们整体的生命周期方法是如何回调的?

    答:A:onPause -> B:onCreate -> onStart -> B:onResume -> A:onStop

异常情况下的生命周期:

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值