什么是AAC?
Google官方DEMO
即Android Architecture Components,谷歌在Google I/O 2017上发布的帮助开发者构建易于维护测试/健壮的架构设计方案。它的核心应该是基于观察者模式的,其主要的两大内容就是:
- 生命周期相关的 Lifecycle-aware Components(生命周期感知组件)
- 数据库解决方案 Room
组件功能:处理数据持久化和管理生命周期(生命周期感知组件执行操作以响应另一个组件(例如活动和片段)的生命周期状态的更改),能够有效的避免内存泄漏等问题。
主要架构图如下:
如何使用AAC相关组件:
app.gradlew中添加依赖LiveData
以及ViewModel
dependencies {
implementation 'android.arch.lifecycle:extensions:1.1.1'
annotationProcessor 'android.arch.lifecycle:compiler:1.1.1'
}
时间有限,本篇主要讲解
Lifecycle管理生命周期
Lifecycle 介绍:
Lifecycle 组件指的是 android.arch.lifecycle 包下提供的各种类与接口,可以让开发者构建能感知其他组件(主要指Activity 、Fragment)生命周期(lifecycle-aware)的类。
基本的使用流程:
- 让需要监听Activity/Fragment的类实现
LifecycleObserver
接口 - 在相关生命周期方法中做出的动作封装成方法并且加上
对应生命周期的注解
,形成映射 - 被监听的Activity/Fragment实现
LifecycleOwner
接口,实例化监听类,最后注册监听
监听类: 其中各个注解对应的就是被监听Ac/Fg的生命周期方法
package com.wdl.aac;
import android.arch.lifecycle.Lifecycle;
import android.arch.lifecycle.LifecycleObserver;
import android.arch.lifecycle.OnLifecycleEvent;
/**
* 创建时间: 2019/3/22 11:35
* 描述: Activity生命周期的管理类,与实现了LifecycleOwner接口的Ac/Fg等建立映射关系。有效避免内存泄漏
* 对外界提供一个接口,管理生命周期使得生命周期从Activity/Fg解耦出来
*/
@SuppressWarnings("unused")
public class ActivityLifeObserver implements LifecycleObserver {
private static final String TAG = Activ