gpt4 book ai didi

安卓实时数据 : MutableData is never on active state

转载 作者:行者123 更新时间:2023-11-30 00:29:43 26 4
gpt4 key购买 nike

我有以下 ViewModel:

class SignInViewModel @Inject constructor(val api: BillingApi) : ViewModel() {
val googleApiClient: MutableLiveData<GoogleApiClient> = MutableLiveData()
}

在我的 Activity.onCreate(onSavedInstanceState: Bundle?) 我有:

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
...
signInViewModel = ViewModelProviders.of(this)
.get(SignInViewModel::class.java)

signInViewModel.googleApiClient.observe(this, Observer<GoogleApiClient?> {
... // here never gets trigged
}

稍后在我的代码中我有 signInViewModel.googleApiClient.value = it。此时(点击按钮后发生,所以我处于恢复状态)我希望 LiveData 触发我的观察者,但它没有

在调试时我注意到我的 MutableLiveData 从未处于 active 状态。

我做错了什么?拜托,我知道我在示例中使用的是 GoogleApiClient 实例,并且应该使用具有自动管理功能的 Activity 初始化它,但这不是这里的问题。我想动态设置它并触发我的观察者。

编辑:添加调用setValue的代码

signInViewModel.someMethod(this)
.observeOn(AndroidSchedulers.mainThread())
.subscribe(Consumer {
// This gets called but the observe callback does **not**
signInViewModel.googleApiClient.value = it
}, errorCallback)

最佳答案

原来 minifyEnabled 是真的。我还没有看到任何关于架构组件的 proguard 规则。

找到这个 issue尚未解决,但具有使其通过所需的配置:

-keepclassmembers class * implements android.arch.lifecycle.LifecycleObserver {
<init>(...);
}
-keepclassmembers class * extends android.arch.lifecycle.ViewModel {
<init>(...);
}
-keepclassmembers class android.arch.lifecycle.Lifecycle$State { *; }
-keepclassmembers class android.arch.lifecycle.Lifecycle$Event { *; }
-keepclassmembers class * {
@android.arch.lifecycle.OnLifecycleEvent *;
}

-keep class * implements android.arch.lifecycle.LifecycleObserver {
<init>(...);
}

关于安卓实时数据 : MutableData is never on active state,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44664027/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com