Android Activity Fragment

本文详细介绍了Android中Activity的生命周期,包括异常情况下的处理,如何保存和恢复UI状态。此外,还深入探讨了Activity的启动模式,如标准模式、栈顶复用模式等,并讲解了启动流程。同时,文章还提到了在Activity中动态添加Fragment的方法。
摘要由CSDN通过智能技术生成

目录

Activity生命周期

异常情况的生命周期 

Saving UI States(保存UI状态)

背景

解决

与Fragment生命周期对比

Activity启动模式

任务栈

标准模式(Standard)

栈顶复用模式(SingleTop)

栈内复用模式(SingleTask)

单例模式(SingleInstance)

四种启动模式的区别

启动模式的设置

在AndroidMainifest设置

通过Intent设置标志位

Activity 启动流程

在Activity的.java文件中动态添加Fragment


Activity生命周期

生命周期方法 = 成对出现(配对)

onCreate() & onDestory()
onStart() & onStop()
onResume() & onPause()

onStart() & onStop()、onResume() & onPause() 除了回调时刻,在实际使用中无任何区别

onStart() & onStop() :从 Activity 是否完全可见的角度 进行回调
onResume() & onPause(): 从 Activity 是否位于前台(UI最顶层)的角度进行回调;
除了上述的区别,在实际使用中没有任何区别
当前Activity为A,此时用户打开ActivityB后,那么A的onPause()和B的onResume()哪个方法先执行?

先 A的onPause() ,再B的onResume()

Activity的启动过程:由ActivityManagerService(AMS)对栈内的Activity状态进行同步管理 & 规定:新Activity启动前,栈顶的Activity必须先onPause(),才能启动新的Activity(执行onResume())
注:为了让新的Activity尽快切换到前台,在 onPause()尽量不要做耗时 / 重量级操作

异常情况的生命周期 

系统内存不足

资源相关的系统配置发生改变

Saving UI States(保存UI状态)

背景

如果系统由于系统约束(而不是正常的应用程序行为)而破坏了Activity,那么尽管实际 Activity实例已经消失,但是系统还是会记住它已经存在,这样如果用户导航回到它,系统会创建一个新的实例的Activity使用一组保存的数据来描述Activity在被销毁时的状态。系统用于恢复以前状态的已保存数据称为“实例状态”,是存储在Bundle对象中的键值对的集合。

解决

onSaveInstanceState()和onRestoreInstanceState()

注意
1、如果是用户自动按下返回键,或程序调用finish()退出程序,是不会触发onSaveInstanceState()和onRestoreInstanceState()的。
2、每次用户旋转屏幕时,您的Activity将被破坏并重新创建。当屏幕改变方向时,系统会破坏并重新创建前台Activity,因为屏幕配置已更改,您的Activity可能需要加载替代资源(例如布局)。即会执行onSaveInstanceState()和onRestoreInstanceState()的。

保存你的Activity状态

static final String STATE_SCORE = "playerScore";
static fi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值