Я реализовал архитектуру MVVM, и она работает хорошо, когда приложение находится на переднем плане, но когда я минимизирую приложение, репозиторий отправляет данные для просмотра модели и просмотра модели на активность, но обратный вызов не вызывается, пока я не возобновлю приложение. Метод является репозиторием:
// Метод для нового заказа и его обработки, и прослушивание коллекции подключений
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, но мне нужно переместить код в репозиторий.