【发布时间】:2020-07-29 08:41:02
【问题描述】:
我已经实现了 MVVM 架构,当应用程序处于前台时它运行良好,但是当我最小化应用程序时,存储库将数据发送到视图模型并将视图模型发送到活动,但在我恢复应用程序之前不会调用回调。 方法是存储库:
//新订单的方法及其流程,监听connections集合
fun connects(driverId: String, connectsSnapshot: (QuerySnapshot?) -> Unit) {
if (connectsRef!=null){
connectsRef?.remove()
connectsRef=null
}
this.connectsSnapshot = connectsSnapshot
connectsRef = FirebaseFirestore.getInstance().collection("connects").whereEqualTo("driver_id", UserDto.getInstance().id).whereEqualTo("status", "new").orderBy("created", Query.Direction.DESCENDING).limit(1)
.addSnapshotListener { snapshots, e ->
if (e != null) {
connectsSnapshot (null)
return@addSnapshotListener
}
System.out.println("==>ListnerHit")
connectsSnapshot (snapshots)
}
}
这个发送数据到视图模型
val mutableLiveDataForConnect = MutableLiveData<QuerySnapshot>()
val mObserverForConnect: Observer<QuerySnapshot> = Observer {
getView().connectListener(it)
}
fun getConnectsData(driverId: String)
{
repository.connects(driverId){
mutableLiveDataForConnect.postValue(it)
System.out.println("==>ViewModel")
}
}
这个也被调用,但当应用程序最小化时,我无法接收有关活动的数据。当我将代码移动到 acitivty 时它工作正常,但我需要将代码移动到存储库。
【问题讨论】:
标签: android kotlin mvvm google-cloud-firestore repository