【发布时间】:2011-12-06 16:45:49
【问题描述】:
我有一个与此处类似的问题:Is it possible to use ContentProvider and direct data access to Database in Android? 但在我的情况下,我希望小部件应用程序是一个单独的应用程序。
所以我有一个使用标准 SQLiteOpenHelper 的 sqlite 数据库的第一个 Android 应用程序。这个助手是在我的应用程序 onCreate 中创建的单例。效果很好。
现在我想创建第二个应用程序——即一个小部件应用程序——也需要访问数据库。所以我想为此使用 ContentProvider 。
1) 这样做是否安全,或者我是否必须重构主应用程序以仅使用 ContentProvider(显然对我来说是一个阻碍!!)
2) 如果可以,我应该如何设计contentProvider?我想我将不得不重用我的单例 SQLiteOpenHelper 并最终在 contentProvider.onCreate 中创建它?
【问题讨论】:
-
最好让两个元素使用相同的机制,即 contentprovider
-
@njzk2 :“首选”?所以你的意思是使用不同的机制是可能的? ;-) 确实将现有代码移至 contentprovider 将是一场噩梦。
-
转移到内容提供商应该是非常不同的。毕竟,contentprovider 提供了您的 CRUD,就像您的数据库类可能提供的一样。但是,可以同时使用多种方法访问数据库,尽管我不明白为什么有人要这样做
-
感谢 njzk2。您知道是否对性能有任何预期影响?我不关心小部件的数据库访问,但我的主应用程序的 INSERT/QUERY 性能非常重要,因为我有大表(已经通过事务优化)
-
我不知道。 contentprovider 也提供了批处理机制
标签: android database concurrency android-contentprovider