Android分页库java.lang.IllegalArgumentException:需要MainThreadExecutor

时间:2018-12-29 00:56:28

标签: android kotlin pagedlist android-paging

我正在使用Android分页库androidx.paging:paging-runtime:2.0.0构建列表。问题是,当我想构建PagedListLivePagedList很好)时,我遇到了一个错误:

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 个答案:

答案 0 :(得分:1)

在阅读源代码时,如果用setNotifyExecutor()设置的执行程序为null,则会出现此异常。我看不到你这么称呼。

我同意例外消息在某种程度上具有误导性。

我使用this作为参考。虽然不完全相同,但我相信androidx版本在这里的行为相同。