这是我参与「第四届青训营 」笔记创作活动的的第8天
今天是7月30日,今天根据青训营的Android学习资料自学了有关Android的基本组件,整理了相关的学习笔记。
Activity
Activity是用于展示数据,实现与用户的交互的容器
四种常见生命周期状态:Active(运行状态)、Pause(暂停状态)、Stop(停止状态)、killed(消亡状态)
Activity必须在AndroidMainfest.xml 中注册,如果不注册,会引起crash
Activity的启动模式
Standard 启动模式:将Activity B的启动模式设置成Standard 启动模式后,不管任务栈内是否已经存在Activity B的实例,当启动 Activity B 时,会有一个新的Activity B位于任务栈顶
SingleTask 启动模式:Activity C 的启动模式设置为 SingleTask 模式,如果任务栈内已经存在 Activity C 的实例且未位于栈顶,当启动 Activity C 时,会将 Activity C 位于任务栈顶
如果此时任务栈内并不存在 Activity C 的实例,当启动 Activity C 时,会创建一个新的 Activity C 实例在栈顶
SingleTop 启动模式:将 Activity D的启动模式设置为 SingleTop启动模式并且任务栈内存在 Activity D 实例且位于栈顶时,启动 Activity D 时,会复用之前创建的 Activity D 的实例
如果任务栈内并不存在 Activity D 的实例时,当启动 Activity D 时,会创建一个崭新的Activity D 实例在栈顶
如果任务栈内存在 Activity D 的实例但实例未在栈顶时,当启动 Activity D 时,会再次创建一个崭新的 Activity D 实例在栈顶
SingleInstance 启动模式
将 Activity E 的启动模式设置为 SingleInstance,并且任务栈内不存在 Activity E 的实例,当启动 Activity E 时,会在创建一个新的任务栈,并且栈内只有 Activity E 一个实例
如果从 Activity D 中开启一个启动模式为 Standard 的 Activity F,Activity E 依旧会独立的存在于自己的任务栈中,而新创建的 Activity F 将会和 Activity D 位于相同的任务栈的栈顶
Fragment
表示 FragmentActivity 中的行为或界面的一部分,可以将 Fragment 视为 Activity 的模块化。
特点:当 Activity 暂停时,Activity 的所有片段也会暂停,Fragment 也有自己独立的Layout文件和class文件,Fragment 和 Activity 是多对多的关系
Service
Service 是一个可以在后台执行长时间运行操作而不提供用户界面的应用组件
Service的两种基本形式:启动和绑定
Broadcast Receiver
Broadcast Receiver分为标准广播(无序广播)和有序广播,标准广播是一种完全异步执行的广播,无序广播是一种同步执行的广播。
ContentProvider
主要应用于进程间数据传输。基于 Android中的Binder机制实现。
总结
今天重点的学习内容是Activity的启动模式,顺带了解了Android的其他几个组件。今天理清了Activity的启动模式有何区别。