繁体   English   中英

如何将架构组件与MediaBrowserService一起使用?

[英]How do I use Architecture Components with MediaBrowserService?

我正在尝试制作一个使用MediaBrowserService播放音频的应用程序,但同时也使用新的Architecture Components来构建整个应用程序。 我之前曾将MediaBrowserService用于另一个应用程序( https://github.com/willhwongwork/PodCast ),但在该应用程序中,我没有使用OnGetRoot()和OnGetChildren()方法加载数据,而只是使用loader或asynctask加载数据来自网络(该应用程序中没有体系结构)。

因此,现在如果我想使用LiveData和ViewModel,应该如何构造代码? 我是否应该在MediaBrowserService中使用它们,并通过OnGetRoot()和OnGetChildren()方法将数据提供给UI?

AppCompatActivity或支持作为LifecycleOwner Fragment由于我们可以使用ViewModelProvidersobserve LiveData ,该Service未实现LifecycleOwner接口。

就是说,有LifecycleService实现LifecycleOwner接口。 我不认为MediaBrowserService实现了LifecycleOwner因此您需要使用ServiceLifecycleDispatcher并创建一个自定义MediaBrowserService

注意:还请看一下Florina关于生命周期服务的看法: https : //github.com/googlesamples/android-architecture-components/issues/137

您可以使用新的Paging库使用onLoadChildren()方法加载数据块,该是Android体系结构组件的一部分。 我写了一篇有关它的文章 ,其中我使用光标从MediaStore中获取MediaItems,但是使用LiveData也可以完成此操作

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM