rdi*_*z82 5 android kotlin android-livedata android-architecture-components
我有以下类结构:
活动 > ViewModel > DataManager > ApiManager
我正在尝试用于LiveData
在层之间共享对象。DataManager 和 ApiManager 是 kotlin,object
所以它们没有任何对活动的引用。为了实现“回调”,我observeforever
在 DataManager 和 ApiManager 中使用以下方式:
fun doStuff(inParam:String, inParam2:String)LiveData<Pair<String,Boolean>>{
var reponse:MutableLiveData<Pair<String,Boolean>> = MutableData()
val requestResponse: LiveData<Pair<String, CustomType>>= ApiManager.doStuff(inParam1, inParam2)
requestResponse.observeForever {
//Do some task here
response.value = Pair("ok",true)
}
return response
}
Run Code Online (Sandbox Code Playgroud)
在实践中,它按预期工作,通过这种结构,我使用LiveData
. 导出已签名的 apk 时出现问题。在此过程中VitalLint
,尽管生成了已签名的 apk,但当我阅读时,它显示指向活动的以下错误LiveData
:
Error:java.lang.IllegalStateException: Recursive call in a lazy value under LockBasedStorageManager@351242ee (<unknown creating class>)
Run Code Online (Sandbox Code Playgroud)
该错误与此行相关联:
val status:Boolean = either.second
Run Code Online (Sandbox Code Playgroud)
我怀疑这可能与我实现观察的方式有关,observeForever
但我没有找到任何其他方式来观察,而我的对象类中没有生命周期感知组件。有任何想法吗?
归档时间: |
|
查看次数: |
850 次 |
最近记录: |