【发布时间】:2018-12-07 13:25:32
【问题描述】:
我的设置包括两个带有 viewpager 的选项卡设置。每个选项卡都包含一个片段,其中包含一个显示歌曲列表的回收视图。
问题是,当将大量歌曲加载到 recyclerview 时,用户界面会冻结一段时间。歌曲数量超过2000首时,系统会卡住很长时间,然后抛出OutOfMemory错误。
注意:在一个简单的片段或活动中将数据加载到recyclerview中完全没有性能问题,即使数据集非常大。
我该如何优化呢?
【问题讨论】:
-
使用google的paging支持库
-
@pskink 我使用MediaBrowserServiceCompat 指定发送项目列表为List
。所以分页库PagedList 在这里不起作用。除非我必须单独获取 mediaItems,而不是通过 MediaBrowserCompat OnSubscriptionCallback。我还没有弄清楚。 -
List<MediaItem>的大小是多少?或者它有多少项? -
大小取决于手机中歌曲的数量。对于拥有超过 100 首歌曲的手机,问题变得更加明显
标签: android performance android-fragments android-recyclerview android-viewpager