#android #kotlin #androidx #kotlin-coroutines #android-paging
#Android #kotlin #androidx #kotlin-сопрограммы #android-подкачка
Вопрос:
После вызова метода suspend внутри блока запуска сопрограммы код после вызова suspend не выполняется.
lifecycleScope.launch {
adapter.source!!.submit(page as PagingData<Receipt>)//suspend call
//not executing
if (setInitialItem) {
Log.d("INITIALSET", "set initial")
pager.currentItem = intent.getIntExtra(POSITION, 0)
}
}
Метод отправки определен в androidx.paging .AsyncPagingDataDiffer
//snippet
suspend fun submitData(pagingData: PagingData<T>) {
submitDataId.incrementAndGet()
differBase.collectFrom(pagingData)
}
Комментарии:
1. Можете ли вы показать эту
submit
функцию? Что-то мешает его возврату или завершению.2. Смотрите мое редактирование выше
3. При запуске функции без указания диспетчеров, которые вы бы использовали, выполняется приостановленный метод в основном потоке, пока
submitData
вызов не завершится, оператор if не будет выполнен. Если вы добавите(Dispaches,IO)
кlunch
функции, я считаю, что это решит проблему.