ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

《第一行代码》第十三章

2022-02-23 19:01:52  阅读:178  来源: 互联网

标签:实体类 代码 Dao ViewModel LiveData 第一行 参数 第十三章 后台任务


jetpack主要由基础、架构、⾏为、界⾯这4个部分组成。

ViewModel专门⽤于存放与界⾯相关的数据的。

ViewModel的生命周期:

                                     

创建 ViewModel的实例是⼀定要通过ViewModelProvider来获取ViewModel的实例,具体语法规则如下:

lifecycle.currentState 返回的⽣命周期状态是⼀个枚举类型,⼀共有 INITIALIZED 、 DESTROYED 、 CREATED 、 STARTED 、 RESUMED 这 5 种状态类型

LiveData

getValue() ⽅法⽤于获取LiveData 中包含的数据; setValue() ⽅法⽤于给 LiveData 设置数据,但是只能在主线程中调⽤; postValue() ⽅法⽤于在⾮主线程中给LiveData设置数据。 map() ⽅法的作⽤是将实际包含数据的LiveData和仅⽤于观察数据的LiveData进⾏转换。 map() ⽅法接收 两个 参数:第⼀个参数是原始的LiveData对象;第⼆个参数是⼀个转换函数,我们在转换函数⾥编写具体的转换逻辑即可。

Room主要由Entity、Dao和Database这3部分组成

Entity。⽤于定义封装实际数据的实体类,每个实体类都会在数据库中有⼀张对应的表,并且表中的列是根据实体类中的字段⾃动⽣成的。

在类名上使⽤@Entity注解,将其声明成⼀个实体类

Dao 。 Dao 是数据访问对象的意思,通常会在这⾥对数据库的各项操作 进⾏封装,在实际编程的时候,逻辑层就不需要和底层数据库打交道了,直接和Dao 层进⾏交互即可。 Database 。⽤于定义数据库中的关键信息,包括数据库的版本号、包含哪些实体类以及提供Dao 层的访问实例。 WorkManager 的基本⽤法: (1) 定义⼀个后台任务,并实现具体的任务逻辑; (2) 配置该后台任务的运⾏条件和约束信息,并构建后台任务请求; (3) 将该后台任务请求传⼊ WorkManager 的 enqueue() ⽅法中,系统会在合适的时间运⾏。 OneTimeWorkRequest.Builder 是 WorkRequest.Builder 的⼦类,⽤于构建 单次 运⾏的后台任务请求。另外⼀个⼦类 PeriodicWorkRequest.Builder,⽤于构建 周期性运⾏的后台任务请求,传⼊的运⾏周期间隔 不能短于15分钟 让后台任务在指定的延迟时间后运⾏,需要借助 setInitialDelay() ⽅法 Result.retry()可以结合 setBackoffCriteria()⽅法来重新执⾏任务setBackoffCriteria()⽅法接收 3个参数:第⼆个和第三个参数⽤于指定在多久之后重新执⾏任务,时间最短不能少于10秒钟;第⼀个参数则⽤于指定如果任务再次执⾏失败,下次重试的时间应该以什么样的形式延迟。 第⼀个参数的可选值有两种,分别是 LINEAR 和 EXPONENTIAL ,前者代表下次重试时间以线性的⽅式延迟,后者代表下次重试时间以指数的⽅式延迟。

标签:实体类,代码,Dao,ViewModel,LiveData,第一行,参数,第十三章,后台任务
来源: https://blog.csdn.net/m0_63930574/article/details/122878549

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有