Android 分页库 java.lang.IllegalArgumentException:需要 MainThreadExecutor
Android paging library java.lang.IllegalArgumentException: MainThreadExecutor required
我正在使用 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()
谁知道这里有什么问题?
阅读源代码,如果用 setNotifyExecutor()
设置的执行程序为空,则会出现此异常。我没看到你这么叫。
我同意异常消息有些误导。
我使用 this 作为源参考。它不完全相同,但我相信 androidx 版本在这里的行为相同。
我正在使用 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()
谁知道这里有什么问题?
阅读源代码,如果用 setNotifyExecutor()
设置的执行程序为空,则会出现此异常。我没看到你这么叫。
我同意异常消息有些误导。
我使用 this 作为源参考。它不完全相同,但我相信 androidx 版本在这里的行为相同。