在我的服务端,它有巨大的数据,我想提供分页的方式项目。有没有推荐的在MediaBrowser/MediaBrowserService(Compat)之间使用分页遍历的流?
我希望在Result<List<MediaItem>>中提供部分数据,而不是所有数据(例如,所有YouTube歌曲),而浏览器端使用分页来一次提取部分数据。
发布于 2017-04-14 16:34:51
在您的
MediaService extends MediaBrowserServiceCompat
@Override
public void onLoadChildren(@NonNull final String parentMediaId, @NonNull final Result<List<MediaItem>> result) {
result.detach();
for (int page = 0; i<pages.size(); i++){
result.sendResult(getList(page));
}
}
public List<MediaItem> getList(int page){
//here create List for page-number == page
}或者,您可以在页面的片段或活动中发出请求
MediaBrowserCompat mediaBrowser = ...;
mediaBrowser.subscribe("1"/*it's page*/, mSubscriptionCallback);然后在您的服务中创建以下内容:
@Override
public void onLoadChildren(@NonNull final String page, @NonNull final Result<List<MediaItem>> result) {
result.detach();
result.sendResult(getList(page));
}发布于 2018-06-25 03:17:49
我想在我的应用程序中做类似的事情--我想以分页的方式返回设备上现有的歌曲。正如您所说,onLoadChildren()方法中的部分结果。我最终使用了安卓的新Paging library来做到这一点。使用该库,我可以使客户端/UI端只向服务请求用户感兴趣的页面,然后只为onLoadChildren()方法中的页面提供服务,调用客户端的subscribe()方法来检索页面。我在post I wrote中详细介绍了它,在其中我还提供了代码示例以更好地演示这个概念。
https://stackoverflow.com/questions/37009675
复制相似问题