这是我参与「第四届青训营 」笔记创作活动的第二天。这篇笔记主要是对安卓客户端第二节课的记录。
笔记:Android客户端第二讲:Android常用组件
Android基础组件
1.1界面组件
Activity
界面容器。
作用:前台交互,程序入口,布局容器
基本用法:
注册->布局->绑定
生命周期:
onCreate():创建时回调,一般在此处创建视图和绑定数据
onStart():已启动,即将进入前台
onResume():与用户开始交互,位于Activity栈顶
onPause():Actvity失去焦点或已暂停,Activity界面部分可见,下一个生命周期是onResume()或onStop()
onStop():Activity不再可见,下一个回调是onRestart()或onDestory()
onRestart():重启已停止的Activity,下一个回调是onStart()
onDestory():销毁Actvity,释放该Activity的所有资源
onSaveInstanceState():在非正常关闭时回调,用于保存数据,不支持持久化数据
onRestoreInstanceState()/onCreate():用于恢复数据
解决电话crash问题:
原因:页面被回收导致本地变量置空
解决:
1.添加判空逻辑避免空指针问题
2.在页面回收周期中存储数据,页面重建时进行恢复,onSaveInstanceState()中写入需要保存的数据,onRestoreInstaneState()进行数据恢复。
启动模式
standard:默认模式,允许Activity重复
singleTop:栈顶复用,不允许Activity连续重复
singleTask:栈内复用,不允许Activity同个栈内重复
singleInstance:全局复用,整个系统不允许Activity重复
Fragment
解决页面碎片化问题,速度快
基本用法:
1.创建Fragment布局文件
2.创建Fragment子类,加载布局文件
3.Activity加载Fragment
3.1静态加载:布局中绑定
3.2动态加载:FragmentManager加载
生命周期:
onAttach() Fragment 和 Activity 建立关联时调用
onCreateView() 当Fragment 创建视图时调用
onActivityCreated() 在相关联的 Activity 的 onCreate() 方法已返回时调用。
onDestroyView() 当Fragment中的视图被移除时调用
onDetach() 当Fragment 和 Activity 取消关联时调用。
与Activity交互:
组件获取:getActivity() FragmentManager.findFragmentById()
数据传递:setArguments(),直接传递,异步传递
Service
基本用法:
注册->创建->加载
生命周期:
onStart() onBind() onCreate() onDestory()
基本用法
静态广播:注册->创建->发送->接收
动态广播:注册
ContentProvider
做数据通信
基本用法
生产者:注册->创建
消费者:声明->使用
Intent
表达意图
Context.startActivity(Intent) Context.startService(Intent) Context.startBroadcast(Intent)
基本用法
显式Intent,隐式Intent
1.2通信组件
Handler
线程通信
基本用法
创建->构造Message->发送->处理
Binder
进程间通信
基本用法
服务端:定义AIDL文件;描述接口,编写service;如果有实体类则提供(jar包形式)
客户端:拿到AIDL文件;绑定服务,获得接口持有对象
总结
今天对安卓开发的基本组件和通信组件有了一定的了解,为接下来的安卓开发打下了坚实的基础。