我有一个关于Android设计的简单方法问题。
我设想了一个提供服务和活动的场景。服务和活动都需要读/写相同的数据。基本的想法是一个实时播放列表:播放列表的服务在完成播放后从列表中“弹出”一首歌曲,但该应用程序也可以通过添加或删除歌曲来编辑列表。
我考虑过将ContentProvider用于实际的播放列表,认为它很简单,但我可以在互联网上找到的所有ContentProvider示例似乎都是病态过于复杂或仅涉及SQLite。
另一种方法是在我的资源中保留一个简单文件,并从服务和应用程序访问该文件。
哪种方法似乎更好?如果我确实应该使用ContentProvider,有人可以指导我做最简单的实现,最好不要涉及SQLite吗?从我之前的看来,ContentProvider似乎过于复杂,仅用于我的目的。
感谢您的任何意见! -Chase
答案 0 :(得分:1)
ContentProvider可以保留它所委托的数据,不管它喜欢什么。通常,这意味着SQLite,因为到ContentProvider接口的映射是直观的。
但是,只要您的ContentProvider实现了insert(),update(),delete()和query()操作,(或实现与使用提供程序需要实现的应用程序一样多的工作)您可以使用您喜欢的任何机制持久保存进出的数据。随意将其存储在SQLite数据库,文件或其他任何内容中。
请记住,您的ContentProvider可能会被杀死并重新启动,甚至可能会被垃圾收集并在以后重新构建,因此您需要使用一些强大的功能来防止该类消失并重新初始化。
在你的情况下,你可能不关心在重启后持续存在(重启后谁会关心播放音乐列表)所以静态变量中的某种列表应该足够了。