文章目录
基本使用
LiveData
是Jetpack 提供的一种响应式编程组件,它可以包括任何类型的数据,并在数据发生变化的时候通知给观察者。LiveData
特别适合于ViewModel
结合在一起使用,虽然它也可以单独用在别的地方,但是绝大多数情况下,它是使用在ViewModel
当中的。
之前我们编写的那个计数器虽然功能非常简单,但其实是存在问题的。目前的逻辑是,当每次点击 ”Plus One“ 按钮时,都会先给ViewModel
中的计数加1,然后立即获取最新的计数。这种方式在单线程模式下确实可以正常工作,但如果 ViewModel
的内部开启了线程去执行一些耗时逻辑,那么在点击按钮后就立即去获取最新的数据,得到的肯定还是之前的数据(因为线程内部的耗时操作没有结束)。
你会发现,原来我们一直使用的都是在 Activity 中手动获取ViewModel
中的数据这种交互方式,但是ViewModel
却无法将数据的变化主动通知给Activity。
或许你会说,我把 Activity 的实例传给 ViewModel
,这样ViewModel