安卓paging库自定义datasource时千万不要在loadInitial()中异步设置返回数据

如题.

我们可能之前习惯通过rxjava的方式请求网络数据了, 并在在onNext()方法中处理返回结果.
但是千万不要在自定的paging库中的几种DataSource类中这么做.
尤其是loadInitial(), 这并不单单是性能的问题, 而是可能无法正常显示得到的数据.

这里有一篇中文的流程分析, 里面也提到了这个问题, 但是我没看明白他说的原因.
https://ankko.github.io/2018/09/12/Android%E7%BB%84%E4%BB%B6Paging%E7%9A%84%E4%BD%BF%E7%94%A8%E5%8F%8A%E5%8E%9F%E7%90%86/

这里还有一篇英文的使用示例, 里面也提到了这个问题
https://medium.com/@Ahmed.AbdElmeged/android-paging-library-with-rxjava-and-rest-api-e5c229fd70ba

You maybe wonder why i don’t use one of Rx most powerful features which specify the threads i want to work in or observe on. I already try this but it give strange behavior after some analysis i realize that the load methods called on background thread provided by Paging. The problem is you get the data on thread and load methods called on another thread.

WTF!

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • @synthesize和@dynamic分别有什么作用?@property有两个对应的词,一个是 @synthes...
    笔笔请求阅读 641评论 0 1
  • 那天在地铁里换乘,我前面貌美的小姐姐跟身边的人说,一眨眼自己都毕业两年了,哎老了老了。我下意识地顺着想,哎吆,我毕...
    阿阪呀阅读 227评论 0 0
  • 九张机 当时冷暖不堪提 等闲辜负相思意 依稀眉目 恍然一梦 少女变人妻
    hentai_musou阅读 195评论 0 2
  • 感恩客户的支持,感恩自己做到以诚待人,坚持做到感恩感谢身边所有的人和事不以目的的做事,做到真善美,我喜欢天使的这个...
    德胜阅读 217评论 0 1

友情链接更多精彩内容