jetpack
文章平均质量分 75
沙漠一只雕得儿得儿
沙漠一只雕,白月光与朱砂痣
展开
-
LiveData 面试题库、解答---LiveData 面试 7 连问~
LiveData 是能感知生命周期的,可观察的,粘性的,数据持有者。LiveData 用于以“数据驱动”方式更新界面。换一种描述方式:LiveData 缓存了最新的数据并将其传递给正活跃的组件。关于数据驱动的详解可以点击我是怎么把业务代码越写越复杂的 | MVP - MVVM - Clean Architecture。这一篇就 LiveData 的面试题做一个归总、分析、解答。先总结,再分析:常规的观察者模式中,只要被观察者发生变化,就会无条件地通知所有观察者。比如:LiveData 在常规的观察者模转载 2022-06-22 14:24:03 · 414 阅读 · 0 评论 -
Android Room数据库使用
Room使用介绍1.创建DatabaseDatabase包含数据库的持有者。作为一个数据库的管理类,必须用注解 @Database 标注,并且满足以下条件:必须是一个抽象类,并且继承 RoomDatabase。 在 Database 的注解内,必须包含一个或者多个和数据库关联的实体类。 包含一个或多个有0个参数的抽象方法,这些方法返回与之关联实体的Dao对象。2.创建Entity代表数据库关联的一个表3.创建Dao包含可以访问数据的方法。Room使用具体分解:步骤1、原创 2021-02-02 22:57:06 · 6624 阅读 · 3 评论 -
kotlin协程的生命周期与jetpack组件绑定
Android 如何使用协程安卓上, 协程可以帮忙解决两大问题:管理长时间运行的任务, 这些任务可能阻塞主线程, 导致 UI 卡顿. 在主线程上安全地调用网络或磁盘操作.安卓上使用协程的最好方式是使用官方的架构组件, 它们提供了对协程的支持. 目前ViewModel,Lifecycle,LiveData,Room组件提供了对协程一等的支持.ViewModelScope对ViewModel的支持主要是在ViewModel上提供了一个称为ViewModelScope的...原创 2021-01-10 11:18:00 · 1061 阅读 · 0 评论 -
Jetpack LifeCycle极简使用
使用方式一:继承自AppCompatActivityclass MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) lifecycle.addObserver(object原创 2021-01-09 16:18:48 · 160 阅读 · 0 评论 -
Jetpack Lifecycle使用
Lifecycle 的作用Lifecycle 是具有生命周期感知能力的组件,也就是说,我们能在 Activity 或者 Fragment 的生命周期发生变化的时候得到通知。我们往往会在 Activity 的各种生命中周期方法里执行特定的方法,比如,进行广播的注册和解绑、Eventbus 的注册和解绑等:public class TestActivity extends AppCompatActivity { @Override protected void onCreate(Bu转载 2021-01-09 15:58:56 · 187 阅读 · 0 评论 -
Jetpack Room数据库(三)源码简析
一、源码架构 room-common、room-runtime、room-ktx三个依赖library CRUD实质使用原生sqlite操作 room内生支持liveData&coroutines 源码概览 Room-Ktx 扩展函数 1. CoroutinesRoom.createFlow/execute//支持协程flow 数据流操作//支持协程调度器2. CoroutinesRoomKt:>>RoomDat.原创 2021-01-03 15:15:10 · 394 阅读 · 2 评论 -
Jetpack Room数据库(二)进阶使用
一、原有表中添加另外对象--嵌套类使用嵌套类:在原有的表中需要添加另外一个实体类时,可以使用嵌套类。@embedded,将额外对象的内容字段,添加到当前entry的表内,所以,其字段不可与当前entry字段重复例如原来的数据实体类叫DBUser,此时我们需要将另外一个实体类Child的相关属性也添加到原来DBUser表中。首先定义一个Child类,需要注意的是Child类中的属性字段不能够和原来的DBUser中的字段重复,因为最后Child的字段是和DBUser插入到同一个表中的,.原创 2021-01-03 13:08:09 · 682 阅读 · 3 评论 -
Jetpack Room数据库(一)快速上手
一、基础知识1、依赖库 implementation 'androidx.room:room-runtime:2.2.5' implementation 'androidx.room:room-common:2.2.5' implementation 'androidx.room:room-ktx:2.2.5' kapt "androidx.room:room-compiler:2.2.5"2、特性 SQL语句高亮 简单入门 功能强大...原创 2021-01-03 11:52:13 · 367 阅读 · 0 评论 -
Jetpack lifeCycle快速上手
Lifecycle的好处是什么?通过使用可感知生命周期的组件,可以将生命周期方法中关于这些组件的代码,移动到组件的内部。Lifecyle基础使用使用时不需要添加额外的依赖库,默认创建project的时候,core\appcompat的androidx依赖库即包含对应lifecycle的依赖 。使用时直接继承ComponentActivity的子类即可使用LifeCycle。下面我们通过对比来看下使用lifecycle和原始书写方式之间的差别。我们模拟一个播放器的例子,我们知道播放器需原创 2021-01-02 16:47:31 · 155 阅读 · 0 评论 -
Jetpack dataBinding(三)上手指南 RecyclerView使用DataBinding
RecyclerView中使用DataBinding下面我们看下在RecycerView中的数据绑定如何使用,整体效果如图:1、在data标签中定义variable <data> <variable name="adapter" type="androidx.recyclerview.widget.RecyclerView.Adapter" /> <variable原创 2021-01-02 12:23:47 · 991 阅读 · 0 评论 -
Jetpack dataBinding(二)快速上手
一、添加依赖,启用dataBinding库//在module的build.gradle中apply plugin: 'kotlin-kapt'//必须android{ //AS 4.0 以下, dataBinding{ enabled true } //AS 4.1之后 bindingFeature{ dataBinding = true // for view binding : // viewBinding = true }}二、UI改造为使用原创 2021-01-02 12:02:08 · 215 阅读 · 0 评论 -
Jetpack dataBinding(一)知识速览
一、基础用法1、启用dataBinding//在module的build.gradle中apply plugin: 'kotlin-kapt'//必须android{ //AS 4.0 以下, dataBinding{ enabled true } //AS 4.1之后 bindingFeature{ dataBinding = true // for view binding : // viewBinding = t...原创 2021-01-02 11:25:08 · 270 阅读 · 0 评论 -
Jetpack ViewModel的创建
viewModel属于lifecycle组件库的一部分一、引入依赖: implementation 'androidx.lifecycle:lifecycle-viewmodel:2.3.0-alpha05' implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.0-alpha05'二、继承viewmodel/或androidViewModel//不带application参数class VmOne原创 2021-01-01 22:29:49 · 1095 阅读 · 0 评论 -
Jetpack LiveData使用(二)
Jetpack LiveData使用(一)简要介绍了liveData最简单的使用方式。下面我们看看livedata的数据格式转换map、livedata多源监听MediatorLiveData 、livedata多源切换和控制SwitchMap的使用。一、数据转化map由于数据的来源多样,赋值于UI需要将原始数据转换为UI对应的数据类型或者数据bean,此时可以使用map:原始代码仍然基于,这里只需添加变化的map操作,activity的map: //map转原创 2021-01-01 19:00:30 · 341 阅读 · 0 评论 -
Jetpack LiveData使用(一)
目录LiveData有哪些优势?LiveData 使用LiveData有哪些优势?LiveData 是一个可以被观察的数据持有类,它可以感知 Activity、Fragment或Service 等组件的生命周期。LiveData 是可被观察的数据持有类。具有生命周期(Activity/Fragment/Service)感知的(确保active状态下接受data更新)简单来说,他主要有一下优点。它可以做到在组件处于激活状态的时候才会回调相应的方法,从而刷新相应的 UI。 不用担心.原创 2021-01-01 18:11:11 · 330 阅读 · 0 评论