探索Android LiveData的使用和行为

Android LiveData是可观察和生命周期感知的数据。

假设生命周期所有者是一个活动,生命周期感知意味着它只在活动处于活动状态时向UI发送更新。Activity is active表示UI在后台(已启动状态)或在前台(恢复状态)可见。

基本LiveData用法

创建可变LiveData

class LiveDataViewModel: ViewModel() {

    private val _liveData = MutableLiveData<Int>()
    val liveData: LiveData<Int> = _liveData
   /*...*/
}
viewModelScope.launch {
    repeat(10000) { value ->
        delay(1000)
        _liveData.value = value
    }
}

MutableLiveData.postValue()

viewModelScope.launch(Dispatchers.IO) {
    repeat(10000) { value ->
        delay(1000)    
        _liveData.postValue(value)
    }
}

协同程序用于模拟异步流,因为我们不想阻塞UI/main线程。
setValue()必须在主线程上运行, postValue()可以在主线程或后台线程上
Observe LiveData - observe() / observeAsState()
观察LiveData,您可以使用手动观察LiveData.observe()或LiveData.observeAsState()应用程序编程接口

LiveData.observe()

创建MutableState数据
创建Observer对象
观察LiveData
移除Observer对象来自LiveData

@Composable
fun LiveDataScreen() {
    val viewModel: LiveDataViewModel = viewModel()
    val lifecycleOwner = LocalLifecycleOwner.current

    //(1) Create a MutableState data
    val manualObserveLiveDataState
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值