Android开发指南说
内容提供者对于读取和写入应用程序私有且不共享的数据也很有用。
通常,Content Providers 用于向不同的应用程序提供数据或在它们之间共享数据。我想知道拥有私人提供商并且不想分享它是否有任何用处。如果直接访问数据库或文件系统没有提供任何好处?
谢谢, 拉贾特
Android开发指南说
内容提供者对于读取和写入应用程序私有且不共享的数据也很有用。
通常,Content Providers 用于向不同的应用程序提供数据或在它们之间共享数据。我想知道拥有私人提供商并且不想分享它是否有任何用处。如果直接访问数据库或文件系统没有提供任何好处?
谢谢, 拉贾特
CursorLoader
)以确保您的应用程序在 UI 端顺利运行ContentProvider
,因此所有锁定都可以完全发生在您的 ContentProvider 覆盖调用中,而不是在 DB 层、服务和 UI 层中跟踪它。至于数据库的重入锁定,它并没有完全做到这一点,但它有帮助——你的 ContentProvider 类实现了四个简单的函数(CRUD 接口),如果你选择覆盖它,第五个,batchAdd() - - 这会本地化您的锁定。最简单的答案是在函数级别简单地标记所有四个/五个函数声明“同步”,你就完成了。比试图在 5 个不同的 Activity 中找出访问数据库的 20 个位置的锁定要干净得多。
例如,一个多进程应用程序使用场景(如:音乐播放服务通常运行在远程进程中),在一个应用程序共享数据库的两个进程之间应该使用私有 ContentProvider。