Android(三)Activity 基础知识
Activity 是什么
activity是 Android 组件 中最基本也是最为常见用的 四大组件 之一。Android 四大组件有 Activity,Service 服务,ContentProvider 内容提供,BroadcastReceiver 广播接收器。
Activity是一个应用程序组件,提供一个屏幕,用户可以用来交互为了完成某项任务。
Activity中所有操作都与用户密切相关,是一个负责与 用户交互 的组件,可以通过 setContentView(View) 来显示指定控件。
在一个android应用中,一个 Activity 通常就是一个单独的屏幕,它上面可以显示一些控件也可以监听并处理用户的事件做出响应。Activity之间通过Intent进行通信。
Activity 的创建
分为三部
1 创建 Activity
12 在 manifest 中注册 activity
主入口特有3 关联布局
Activity 和 layout 进行关联布局Activity 之间的跳转
Intent 类
布局 Intent注意: 需要在 manifest 中注册 activity (一般都是自动注册的)。
Activity 4 种启动模式
Activity 存放 在 栈中, Activity 之间的跳转 就像 出栈 和 入栈 一样,这是 系统默认的 启动模式;
Activity 之间的跳转4 种启动模式
1 standard
standard2 singleTop
顶部复用模式
顶部复用模式3 singleTask
4 singleInstance
如何设置模式
1 manifest 中设置
manifest2 在代码中设置
在代码中设置Activity 的生命周期
类比 Vue 、React 的生命周期
生命周期 生命周期 生命周期Activity 之间数据的传递
页面跳转传参
可以传递 多种数据结构
第一个页面注意 当传递 序列化的数据,该类需要 implements Serializable
序列化的数据第二个页面 接受参数
在 onCreate 生命周期 中
第二个页面当我们需要回传数据的时候
关闭页面将数据回传到原来的页面
步骤
1 第一个页面 使用 startActivityForResult
startActivityForResult2 第二个页面 使用 setResult 返回数据
可以选择 关闭页面的 生命周期 或者 退后按钮事件中 返回数据
3 第一个页面 onActivityResult 监听结果返回的 事件
onActivityResultFragment
设计思想
做不同屏幕的适配, 模块化可复用,就跟 React 和 Vue 的组件类似;
Fragment 和 Activity 的区别
1 Fragment 是到 Android 3.0+ 以后才出现;
2 一个 Activity 可以运行多个 Fragment;
3 Fragment 不能脱离 Activity 而存在;
4 Activity 是屏幕的主题,而 Fragment 是 Activity 的一个组成元素;
使用方式
静态加载: XML
步骤
1 编写 fragment 的 布局;
xml2 编写 fragment 类
应用布局3 在主 Activity 中应用 fragment
注意 name 是 fragment 的 全路径
动态加载: Java code
步骤 1
同静态加载 还是要先把 fragment 的类 和 布局写好
步骤 2
需要加载 fragment 的 Activity 的布局文件 需要 写好 占位的 控件;
以后会被 fragment 替换Fragment 传值
类比 Vue 和 React 的 父子组件传值;
Activity -----> Fragment 传值
使用 setArguments 方法
fragment 中 主 Activity 中 onCreate 方法 传参数类比 React 的 state, 首先 声明 state, 然后父组件中 传入参数, 这样 子组件就能拿到参数并使用, 注意 在不同的生命周期中获取;
Fragment -----> Activity 传值
使用 Callback
Fragment 中 Activity 中通过 将 主 Activity 的 this 传入, 并且 主 Activity 实现了 onClick 方法
mOnTitleClickListener 就是 this,直接 调用了 Activity 的 onclick 方法,拿到了 fragment 的传递的参数 title;