【问题标题】:Content Provider or resource, activity and service cooperation内容提供者或资源、活动和服务合作
【发布时间】:2011-04-11 03:49:08
【问题描述】:

我有一个关于 Android 设计的简单方法问题。

我设想了一个我提供服务和活动的场景。服务和活动都需要读取/写入相同的数据。基本理念是实时播放列表:播放列表的服务会在播放完毕后从列表中“弹出”一首歌曲,但应用也可以通过添加或删除歌曲来编辑列表。

我考虑将 ContentProvider 用于实际播放列表,认为这很简单,但我在 Internet 上找到的所有 ContentProvider 示例似乎都过于复杂或仅涉及 SQLite。

另一种方法是在我的资源中保留一个简单文件,并从服务和应用程序访问该文件。

这里哪种方法似乎更好?如果我确实应该使用 ContentProvider,有人可以指导我使用最简单的实现,最好不涉及 SQLite?从我之前的观点来看,ContentProvider 对于我的简单目的来说似乎过于复杂了。

感谢您的任何意见! -追逐

【问题讨论】:

    标签: android service android-contentprovider


    【解决方案1】:

    ContentProvider 可以随心所欲地保存它所委托的数据。通常,这意味着 SQLite,因为到 ContentProvider 接口的映射很直观。

    但是,只要您的 ContentProvider 实现了 insert()、update()、delete() 和 query() 操作,(或实现了使用该提供者的应用程序需要实现的工作量)你可以使用任何你喜欢的机制来持久化进出的数据。随意将其存储在 SQLite 数据库、文件或其他任何内容中。

    请记住,您的 ContentProvider 可能会被杀死并重新启动,甚至可能会在以后被垃圾收集和重新构建,因此您需要使用能够防止类消失和重新初始化的东西。

    在您的情况下,您可能不关心在重新启动后持续存在(谁关心您重新启动后播放的音乐列表是否存在),因此静态变量中的某种列表应该就足够了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-11
      • 2019-05-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-10
      相关资源
      最近更新 更多