这是我参与【第四届青训营】笔记创作活动的第五天
一、Activity组件简介
·Activity 组件是Android 四大组件(Activity、Service、ContentProvide、BroadcastReceiver)之一,是Android 中最基本也是最常见的一个应用程序组件。6 个关于Activity 的概念:
·Activity 类是Android 应用程序的关键组件,一个Activity实现应用程序中的一个界面。
·大多数应用程序包含多个界面,所以应用程序也会包含多个Activity。在一个应用程序的众多Activity中,只能有一个被指定为主Activity,就是用户启动应用程序时出现的第一个界面。Activity可以启动另一个Activity。
•Activity 提供窗口以加载布局资源来绘制用户可视界面,窗口大多数情况下会填满屏幕,但也可能比屏幕小或者呈半透明状,浮动在其他窗口之上。
•要使应用程序能够使用Activity,我们必须在清单文件AndroidManifest.xml 中声明Activity及其特定属性。
•每一个Activity 都有着自己的生命周期,它在其生命周期中会经历多种状态。
•在大多数情况下,桌面软件通过单一程序入口来启动整个程序,而移动应用与桌面软件的运行机制不同,Android 应用程序的结构比较复杂,在允许的情况下,可以根据功能需要,从不同的界面或组件启动应用程序。
二、Activity的创建
•第一步:创建布局资源
•第二步:创建Activity 子类
(1).创建一个继承Activity类或Activity派生类的子类
(2).实现回调方法onCreadte(),并调用setContentView(int LayoutResID)方法,加载布局文件。
•第三步:在AndroidManifest.xml 中注册Activity 类
三、案例:在项目中新增Activity对象
需求描述: 在HiAndroid项目上新增Activity对象,并作为第一界面启动。
技术要点: Activity创建的方法。
步骤描述:
①创建Activity子类MyActivity和布局
②编辑activity_my.xml布局
③编辑AndroidManifest.xml ,设置MyActivity为启动界面
④运行和测试程序
实现步骤:
①创建Activity子类MyActivity和布局
②编辑activity_my.xml布局
③编辑AndroidManifest.xml ,设置MyActivity为启动界面
④运行和测试程序
四、Intent的解析
•什么是Intent
Intent的中文意思是“意图、目的、意向”,它能在程序运行过程中连接两个不同的组件(如Activity、Service、BroadCast Recevicer),被视为连接组件的桥梁,实现组件间的交互,它包含了交互的动作和动作数据。通过Intent,程序可以向Android表达某种请求或者意愿,Android系统会根据意愿的内容选择适当的组件来响应,例如从一个Activity启动另一个Activity。
Intent 分为两种类型:显式Intent 和隐式Intent
·显式Intent:显式 Intent通过提供目标应用的软件包名称* 和*完全限定的组件类名来指定可处理 Intent 的应用。
·隐式*Intent:隐式Intent启动组件不指定特定的组件名称,而是声明要执行的常规操作。通过设置Intent的action、data、category属性,允许其他应用组件来自行处理选择启动,即让系统来筛选出合适的组件。
•Intent的action, type, category三个属性的匹配规则:ü如果Intent指定了action,则目标组件的IntentFilter的action列表中就必须包含有这个action,否则不能匹配。
ü如果Intent没有提供type,系统将从data中得到数据类型。和action一样,目标组件的数据类型列表中必须包含Intent的数据类型,否则不能匹配。
ü如果Intent中的数据不是content:类型的URI,而且Intent也没有明确指定 type,将根据Intent中数据的scheme(比如 https:或者mailto:)进行匹配。同上,Intent的scheme必须出现在目标组件的scheme列表中。
ü如果Intent指定了一个或多个category,这些类别必须全部出现在组建的类别列表中。比如 Intent 中包含了两个类别:LAUNCHER_CATEGORY 和 ALTERNATIVE_CATEGORY,解析得到的目标组件必须至少包含这两个类别。
\