如何理解Activity 的生命周期

Activity 生命周期是学习Activity的基础,这篇文章就想带大家深入了解这个基础。在Activity的生命周期中,系统会按类似于阶梯金字塔的顺序调用一组核心的生命周期方法。 也就是说,Activity生命周期的每个阶段就是金字塔上的一阶。 当系统创建新Activity实例时,每个回调方法会将Activity状态向顶端移动一阶。 金字塔的顶端是Activity在前台运行并且用户可以与其交互的时间点。

当用户开始离开Activity时,系统会调用其他方法在金字塔中将Activity状态下移,从而销毁Activity。 在有些情况下,Activity将只在金字塔中部分下移并等待(比如,当用户切换到其他应用时),Activity可从该点开始移回顶端(如果用户返回到该Activity),并在用户停止的位置继续。

有Activity会在图 1 所示不同状态之间过渡的几种情况。 但是,这些状态中只有三种可以是静态。 也就是说,Activity只能在三种状态之一下存在很长时间。

继续

在这种状态下,Activity处于前台,且用户可以与其交互。(有时也称为“运行”状态。)

暂停

在这种状态下,Activity被在前台中处于半透明状态或者未覆盖整个屏幕的另一个Activity—部分阻挡。 暂停的Activity不会接收用户输入并且无法执行任何代码。

停止

在这种状态下,Activity被完全隐藏并且对用户不可见;它被视为处于后台。 停止时,Activity实例及其诸如成员变量等所有状态信息将保留,但它无法执行任何代码。

其他状态(“创建”和“开始”)是瞬态,系统会通过调用下一个生命周期回调方法从这些状态快速移到下一个状态。 也就是说,在系统调用 onCreate() 之后,它会快速调用 onStart(),紧接着快速调用 onResume()。

指定启动器所使用的activity

Android在启动的时候,会调用AndroidManifest.xml中定义的主activity作为启动界面,其定义方式如下:

<?xml version="1.0" encoding="utf-8"?>  <manifest xmlns:android="http://schemas.android.com/apk/res/android";

package="com.xiao.residue.hw">

<application        android:allowBackup="true"

android:icon="@mipmap/ic_launcher"

android:label="@string/app_name"

android:supportsRtl="true"

android:theme="@style/AppTheme"

>

<activity android:name=".MainActivity">

<!--定义此activity为启动时候使用的activity-->

<intent-filter>

<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />

</intent-filter>

</activity>

<activity android:name=".anotherActivity"></activity>

</application>

</manifest>

文章来自:晓残的博客

时间: 2024-07-28 14:32:56

如何理解Activity 的生命周期的相关文章

实验3:理解Activity 的生命周期

代码清单3-1 新增一个TAG常量(QuizActivity.java) 代码清单3-2 为onCreate(...)方法添加日志输出代码(QuizActivity.java) 代码清单3-3 覆盖更多生命周期方法(QuizActivity.java) 代码清单3-4 水平模式布局修改(layout-land/activity_quiz.xml) 代码清单3-5 新增键?值对的键(QuizActivity.java) 代码清单3-6 覆盖onSaveInstanceState(...)方法(Qu

【Android】11.1 Activity的生命周期和管理

分类:C#.Android.VS2015: 创建日期:2016-02-21 一.基本概念 1.必须理解这些方法,否则你编的程序根本就没法在实际项目中使用 当然,如果仅仅是为了玩玩,或者仅仅是作为例子为了专注于介绍某个知识点而有意忽略其他的实现细节,那就另当别论了. Android应用程序可自动创建.暂停.恢复.销毁Activity,下图是典型的Activity生命周期(虽然不同资料画的图不一样,但殊途同归,目的都是为了帮助理解): 要创建一个自定义的Activity,必须创建一个父类为Activ

Activity的生命周期

Android学习之Activity的生命周期 Android应用程序的不能自己控制他们自己的进程,但是Android运行时可以管理每个进程.因此正确的理解Activity的生存期,对于保证用户有个良好的体验有着很大的帮助. 1. Activity栈及状态 Activity栈是当前正在运行的所有Activity后进先出的集合.新启动的Activity始终在栈顶.Activity有四种种状态. 活动状态   当Activity处于栈顶,也就是Activity是可见的,具有焦点的Activity,此

Activity的生命周期方法

简介: Activity类作为Android的系统组件,它由系统创建它的对象, 当这个对象已经创建完成之后,系统会调用一系列指定的方法,这些方法我们 称之为生命周期方法. 什么是生命周期? ·生命周期 是指一个事物(可能是没有实体的)从无到有,然后从有到无 的过程,它的基本意义可以通俗的理解为"从摇篮到坟墓"的整个过程,根据事物不同,经历的阶段所不同. ·Activity是由Android系统进行维护的,它的对象的创建,销毁过程都由Android系统来完成, 并且在创建到销毁的这个阶段

android学习四(Activity的生命周期)

要学好活动(Activity),就必须要了解android中Activity的声明周期,灵活的使用生命周期,可以开发出更好的程序,在android中是使用任务来管理活动的,一个任务就是一组存放在栈里的活动的集合,这个栈也被称作返回栈.栈的特性是后进先出,在默认的情况下,每当我们启动了一个新的活动,它会在返回栈中入栈,并处于栈顶的位置.而每当我们按下Back键或调用finish方法去销毁一个活动时,处于栈顶的活动会出栈,这时前一个入栈的活动就会重新处于栈顶的位置.系统总是会显示处于栈顶的活动给用户

Android开发艺术探索——第一章:Activity的生命周期和启动模式

Android开发艺术探索--第一章:Activity的生命周期和启动模式 怀着无比崇敬的心情翻开了这本书,路漫漫其修远兮,程序人生,为自己加油! 一.序 作为这本书的第一章,主席还是把Activity搬上来了,也确实,和Activity打交道的次数基本上是最多的,而且他的内容和知识点也是很多的,非常值得我们优先把他掌握,Activity中文翻译过来就是"活动"的意思,但是主席觉得这样翻译有些生硬,直接翻译成"界面"可能更好,的确,Activity主要也是用于UI效

基础篇:3.熟练掌握Activity的生命周期和使用方法

1.Activity的生命周期 只要谈到Activity的生命周期,就少不了会涉及到下面这张经典图: 从图中可以看出一个完整的Activity生命周期涉及了onCreate.onStart.onResume.onpause.onStop.onRestart.onDestroy这7个方法,根据这7个方法结合上图,可以将Activity生命周期大致分为以下几种情况: (1)启动Activity:系统调用onCreate---onStart---onResume,系统开始进入running状态. (2

android 没有main函数,怎么找到程序执行入口呢?以及activity主要生命周期的方法说明

android应用程序,由一到多个Activity组成.每个Activity没有很紧密的联系,因为我们可以在自己的程序中调用其它Activity,特别是调用自己的代码之外生成的Activity,比如android提供的发短信或者打电话的Activity. Intent call = new Intent(Intent.ACTION_CALL,Uri.parse("tel:"+phonenumber); startActivity(call); Intent sms = new Inte

【Android开发学习笔记】【第五课】Activity的生命周期-上

今天学习Activity当中的七个生命周期函数: 首先得说一个事情,就是在代码当中如果加入了 System.out.println(" ------");之后,如何查看这里面的输出内容 打开之后只输入“Filter Name”和“by Log Tag” 即可 添加成功后可以看到 本次学习主要总结如下: 1.onCreate() Acitivity首次创建时被调用.用于设置Acitivity的布局文件,绑定按钮监听器等一些普通静态操作. 2.onStart() Acitivity对用户可