
Jetpack
它不会起名字
好奇心比较强的一个人
展开
-
13 - 将Kotlin协程与架构组件一起使用
将Kotlin协程与架构组件一起使用文章目录将Kotlin协程与架构组件一起使用添加KTX依赖项生命周期感知型协程范围ViewModelScopeLifecycleScope暂停生命周期感知型协程将协程与LiveData一起使用其他资源示例博客Kotlin 协程提供了一个可供您编写异步代码的 API。通过 Kotlin 协程,您可以定义 CoroutineScope,以帮助您管理何时应运行协程。每个异步操作都在特定范围内运行。添加KTX依赖项本主题中介绍的内置协程范围包含在每个相应架构组件的 K原创 2020-06-22 00:36:23 · 266 阅读 · 0 评论 -
12 - ViewModel的已保存状态模块
ViewModel的已保存状态模块文章目录ViewModel的已保存状态模块设置和使用存储和检索值可接受的类其他资源CodelabViewModel 对象可以处理配置更改,因此您无需担心旋转时或其他情况下的状态。但是,如果您需要处理系统发起的进程终止,则可以使用 onSaveInstanceState() 作为备用方式。界面状态通常在 ViewModel 对象中(而不是 Activity 中)存储或引用;因此,使用 onSaveInstanceState() 时需要该模块可以为您处理的某个样板。模原创 2020-06-22 00:34:56 · 367 阅读 · 0 评论 -
11-保存状态
保存状态文章目录保存状态用户预期和系统行为用户发起的界面状态解除系统发起的界面状态解除用于保留界面状态的选项使用 ViewModel 处理配置更改使用 onSaveInstanceState() 作为后备方法来处理系统发起的进程终止针对复杂或大型数据使用本地持久性存储来处理进程终止管理界面状态:分而治之恢复复杂的状态:重组碎片其他资源博客未编辑在发生系统发起的 Activity 或应用销毁后,需要及时保存和恢复 Activity 的界面状态,这是用户体验的一个至关重要的部分。在这些情况下,用户希望原创 2020-06-22 00:33:36 · 598 阅读 · 0 评论 -
10-WorkManager
WorkManager文章目录WorkManager概览使用入门将WorkManager添加到项目中创建后台任务配置运行任务的方式和时间将任务提交给系统后续步骤方法指南定义WorkRequest工作约束初始延迟重试和退避政策定义任务的输入/输出标记工作观察工作状态工作状态观察工作状态观察工作器的中间进度更新进度观察进度将工作链接在一起简介Input Merger链接和工作状态取消和停止工作停止正在运行的工作器处理重复性工作处理唯一作业测试Worker实现测试ListenableWorker及其子类测试Wo原创 2020-06-20 00:45:28 · 602 阅读 · 0 评论 -
9-ViewModel
ViewModel文章目录ViewModel实现ViewModelViewModel的生命周期在Fragment之间共享数据将加载器替换为ViewModel将协程与ViewModel一起使用更多信息其他资源示例Codelab博客视频ViewModel 类旨在以注重生命周期的方式存储和管理界面相关的数据。ViewModel 类让数据可在发生屏幕旋转等配置更改后继续存在。在ViewModel之前,面临的问题:如果系统销毁或重新创建界面控制器,则存储在其中的任何临时性界面相关数据都会丢失。对于简单原创 2020-06-20 00:44:44 · 172 阅读 · 0 评论 -
8-Room持久性库
Room持久性库文章目录Room持久性库概览示例声明依赖项配置编译器选项使用实体定义数据使用主键忽略字段提供表搜索支持支持全文搜索(FTS:Full-text Search)将特定列编入索引添加基于AutoValue的对象定义对象之间的关系定义一对多关系创建嵌套对象定义多对多关系在数据库中创建视图创建视图将视图与数据库相关联使用DAO访问数据自定义方法InsertUpdateDelete查询信息简单查询将参数传递给查询返回列的子集传递参数的集合可观察查询使用RxJava进行响应式查询直接光标访问查询多个表原创 2020-06-20 00:44:15 · 282 阅读 · 0 评论 -
7-分页库
分页库文章目录分页库声明依赖项概览库架构PageList数据界面支持不同的数据架构网络数据库网络和数据库处理网络错误更新现有应用自定义分页解析使用列表而不是网页加载的数据使用CursorAdapter将数据光标与列表视图相关联使用AsyncListUtil异步加载内容数据库示例使用LiveData观察分页数据使用RxJava2观察分页数据显示分页列表将界面与视图模型关联实现差异回调使用其它适配器类型实现差异回调功能在界面中提供占位符(placeholder)加载分页数据构造可观察列表自定义分页配置选择合适原创 2020-06-20 00:43:37 · 170 阅读 · 0 评论 -
6-LiveData
LiveData文章目录LiveData优势使用创建观察更新将LiveData与Room一起使用将协程与LiveData一起使用扩展转换创建新的转换 MediatorLiveData合并多个源LiveData 是一种可观察的数据存储器类。与常规的可观察类不同,LiveData 具有生命周期感知能力,意指它遵循其他应用组件(如 Activity、Fragment 或 Service)的生命周期。这种感知能力可确保 LiveData 仅更新处于活跃生命周期状态的应用组件观察者。优势确保界面符合数原创 2020-06-20 00:42:53 · 190 阅读 · 0 评论 -
5-处理生命周期
处理生命周期文章目录处理生命周期生命周期LifecycleOwner实现自定义LifecycleOwner生命周期感知型组件的最佳做法生命周期感知型组件的用例处理ON_STOP事件androidx.lifecycle 软件包提供了可用于构建生命周期感知型组件的类和接口 - 这些组件可以根据 Activity 或 Fragment 的当前生命周期状态自动调整其行为。 dependencies { def lifecycle_version = "2.2.0" d原创 2020-06-20 00:35:05 · 181 阅读 · 0 评论 -
4-数据绑定库
数据绑定库文章目录数据绑定库概览1. 开始使用2. 布局和绑定表达式3. 使用可观察的数据对象4. 生成的绑定类5. 绑定适配器将布局视图绑定到架构组件双向数据绑定使用入门布局和绑定表达式数据对象绑定数据表达式语言缺少的运算Null 合并运算符 (??)属性引用避免出现 Null 指针异常集合字符串资源事件处理方法引用监听器绑定避免使用复杂的监听器导入、变量和包含导入变量包含使用可观察的数据对象字段集合对象生成的绑定类创建绑定对象带ID的视图变量ViewStubs即时绑定高级绑定动态变量后台线程自定义绑定原创 2020-06-20 00:34:18 · 374 阅读 · 0 评论 -
3-视图绑定
文章目录1. 启用1.2 在生成绑定类时忽略某个布局文件2. 用法3. 与 findViewById 的区别4. 与数据绑定库的区别在模块中启用视图绑定之后,系统会为该模块中的每个 XML 布局文件生成一个绑定类。绑定类的实例包含对在相应布局中具有 ID 的所有视图的直接引用(替代findViewById)。1. 启用## 1.1 可按模块启用。要在某个模块中启用视图绑定,请将 viewBinding 元素添加到其 build.gradle 文件中android { ...原创 2020-06-20 00:33:30 · 281 阅读 · 0 评论 -
2-向项目添加组件
文章目录声明依赖项Futures(可在 androidx.concurrent 中找到)生命周期组件(包括 ViewModel)导航(包括 SafeArgs)导航Safe ArgsPagingRoomWorkManager打开项目的 build.gradle 文件(而不是应用或模块的该文件)并添加 google() 代码库,如下所示: allprojects { repositories { google() jcenter()原创 2020-06-20 00:32:28 · 399 阅读 · 0 评论 -
1-概览
Android 架构组件是一组库,可帮助您设计稳健、可测试且易维护的应用。您可以从管理界面组件生命周期和处理数据持久性的类着手。通过应用架构指南,学习有关汇编稳健应用的基础知识。管理应用的生命周期。新的生命周期感知型组件可帮助您管理 Activity 和 Fragment 的生命周期。在配置更改后继续有效、避免内存泄漏,以及轻松加载数据到界面中。使用 LiveData 构建数据对象,在基础数据库改变时通知视图。ViewModel 存储界面相关的数据,这些数据不会在应用轮转时销毁。Room 是一个原创 2020-06-20 00:31:28 · 111 阅读 · 0 评论