Однако у меня возникла проблема при портировании кода подкачки. в приложение Java, поскольку данные извлекаются по страницам, но извлечение страницы продолжает происходить в фоновом режиме, даже когда я не прокручиваю окно recyclerview. Другими словами, после загрузки страницы 1 он затем загружает страницы 2, 3, 4 и т. д. и продолжает работу.
Я настраиваю разбиение на страницы в модели представления:
Код: Выделить всё
public Observable
> loadItems()
{
PagingConfig config = new PagingConfig(...);
Pager pager = new Pager(config, null, null,
() -> new MyPagingSource());
return PagingRx.getObservable(pager)
}
Код: Выделить всё
disposable = viewModel.loadItems()
.subscribe( pagingData -> {
getAdapter().submitData(getLifecycle(), pagingData);
});
Я понимаю, что библиотека подкачки 3 использует внутренние сопрограммы и потоки, поэтому я добавил эту зависимость, но это не имело никакого значения.
Код: Выделить всё
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-rx2:1.3.7'
Демонстрационное приложение Kotlin находится на GitHub и имеет RxJava, а также версию Flow (на основе на примерах Android). Он выполняет пейджинг к поставщику контента телефонии для получения входящих SMS-сообщений.
Подробнее здесь: https://stackoverflow.com/questions/626 ... not-kotlin
Мобильная версия