我有使用直接数据访问它的数据库的应用程序。对于其他应用程序,我没有任何东西可以暴露在它之外。正如 CommonsWare 在 SO 上的某处所说,“如果你没有什么可公开的 - 不要使用 ContentProvider”。现在,我想添加小部件以显示其中一个表中的几个字符串,存储在数据库中。我应该将直接访问代码重构为ContentProvider模式吗?有没有办法从小部件直接访问数据库?有没有办法在一个应用程序中同时拥有 ContentProvider 和直接访问数据库?
问问题
304 次
1 回答
1
现在,我想添加小部件以显示其中一个表中的几个字符串,存储在数据库中。
我将假设您所说的“小部件”实际上是指“应用小部件”。
我应该将直接访问代码重构为 ContentProvider 模式吗?
您不必仅仅因为您正在编写应用程序小部件而这样做。
有没有办法从小部件直接访问数据库?
当然,使用您在应用程序中其他任何地方使用的相同机制。
有没有办法在一个应用程序中同时拥有 ContentProvider 和直接访问数据库?
是的,尽管您必须小心确保SQLiteDatabase
在两种情况下都使用相同的对象,这样您就不会遇到线程问题。
于 2011-10-14T21:19:33.703 回答