Библиотека подкачки 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 ведет себя так же здесь.

Другие вопросы по тегам