我真的很喜欢'Loaders','ContentProviders'的概念,特别是'ContentObservers'。我使用这个标准模式,从本地数据库加载数据,当它从我的服务器更新时,它用getContentResolver().notifyChange()
或类似的东西刷新。
但是当我使用ContentProvider时,我必须将我的数据暴露给其他应用程序。这是为什么?我没有任何敏感数据,但对我来说似乎并不优雅。所以我在这里错过了一些东西,或者使用ContentProvider(因此暴露我的数据)是实现它的唯一方法。
我真正想念的其他实现选项是通知Loaders新数据出现在本地数据库中。
答案 0 :(得分:0)
这里要非常明确:当您使用内容提供商时,不必须将您的数据公开给其他应用。相反,你可以使用android:exported =“false”属性 你的清单中的元素。
在Android API指南的Creating a Content Provider中详细介绍了使用权限来限制对提供商的访问权限(但不能阻止它)。