nas*_*bov 4 kotlin android-livedata mutablelivedata mediatorlivedata android-livedata-transformations
最近我一直在学习 LiveData 上的转换方法
我知道我们可以使用maporswitchMap方法来转换实时数据。假设我们有类似下面的 Player 数据类
data class Player(val name: String, val score: Int = 0)
Run Code Online (Sandbox Code Playgroud)
我们使用map方法将player livedata转换为playerName livedata
val player: LiveData<Player> = ...
val playerName: LiveData<String> =
Transformations.map(player) { it.name }
Run Code Online (Sandbox Code Playgroud)
我的问题是,在观察者函数中执行它有什么区别,因为它们都在主线程中运行?我的意思是,如果我们想获取playerName,那么我们也可以在观察者函数中获取它。为什么我们声明第二个 LiveData 实例来获取它
我从本指南中获取了示例代码:https://proandroiddev.com/livedata-transformations-4f120ac046fc
假设Observer是 Android UI 的一部分,是Activity或Fragment的LiveData一部分ViewModel,
Observer将是本地的Observer,如果 Activity 由于任何Config更改而重新启动,则内部数据Activity将被破坏,除非您以某种方式保存它,但会LiveData持续活动重新创建,因此如果您在观察者端进行转换,则必须执行此操作每次 ,但在 的情况下LiveData,转换后的数据将被缓存,并在每次调用时提供。| 归档时间: |
|
| 查看次数: |
6540 次 |
| 最近记录: |