Android LiveData值未从后台发送
在阅读找到的Android LiveData值未从后台发送,android,android-livedata,Android,Android Livedata,在阅读找到的LiveData文档时,我遇到了以下部分: 如果生命周期变为非活动状态,它将在再次变为活动状态时接收最新数据。例如,位于后台的活动在返回前台后立即接收最新数据 当我创建一个空白项目来测试这一点时,我发现来自后台的最新数据并没有被发送 onCreate()中的示例代码: 当转到后台并返回时,LiveData保存的最新数据是否应再次发送给观察者 更新: 按要求查看模型代码: class MyViewModel : ViewModel() { val textLiveData =
LiveData
文档时,我遇到了以下部分:
如果生命周期变为非活动状态,它将在再次变为活动状态时接收最新数据。例如,位于后台的活动在返回前台后立即接收最新数据
当我创建一个空白项目来测试这一点时,我发现来自后台的最新数据并没有被发送
onCreate()
中的示例代码:
当转到后台并返回时,LiveData
保存的最新数据是否应再次发送给观察者
更新:
按要求查看模型代码:
class MyViewModel : ViewModel() {
val textLiveData = MutableLiveData<String>()
fun buttonClicked() {
textLiveData.value = "new text value"
}
}
类MyViewModel:ViewModel(){
val textLiveData=MutableLiveData()
有趣的按钮点击(){
textLiveData.value=“新文本值”
}
}
因此,经过大量调查,我将使用两种场景分享我的答案,以便于理解
情景1:
- 应用程序位于前台
从Observer
LiveData
- 应用程序进入后台
- 当从后台返回时,
将不发送该值,因为LiveData
观察者已经使用了该值/具有最新的更改
- 应用程序位于前台
- 观察员从
LiveData
- 应用程序进入后台
- 当应用程序处于后台时,LiveData接收一个新值李>
- 由于应用程序仍在后台,并且
未处于活动状态,Observer
将不会发送值更改LiveData
- 当返回前台并且
再次处于活动状态时,Observer
会发送自其更改以来的最新值LiveData
class MyViewModel : ViewModel() {
val textLiveData = MutableLiveData<String>()
fun buttonClicked() {
textLiveData.value = "new text value"
}
}