Библиотека подкачки Android java.lang.IllegalArgumentException: требуется MainThreadExecutor
Я использую библиотеку подкачки Android androidx.paging:paging-runtime:2.0.0
составить список. Проблема в том, что когда я хочу построить PagedList
(LivePagedList
работает хорошо) у меня ошибка:
java.lang.IllegalArgumentException: MainThreadExecutor required
at androidx.paging.PagedList$Builder.build(PagedList.java:355)
Но я не вижу этого setMainThreadExecutor
метод доступен, есть только setFetchExecutor
:
val result = list.filter { it.desc?.contains(query, ignoreCase = true) == true }
val dataSource = MyDataSource(result)
val mainHandler = Handler(Looper.getMainLooper())
val pagedList: PagedList<MyDetails> = PagedList.Builder<Int, MyDetails>(dataSource, 500).setFetchExecutor { mainHandler.post(it) }
.build()
Кто знает в чем тут проблема?
1 ответ
Решение
Читая источник, вы получите это исключение, если исполнитель установлен с setNotifyExecutor()
нулевой. Я не вижу, что ты так называешь.
Я согласен, что сообщение об исключении несколько вводит в заблуждение.
Для справки источника я использовал это. Это не совсем то же самое, но я считаю, что версия для Android ведет себя так же здесь.