我的应用程序使用直接数据访问它的数据库。对于其他应用程序,我没有任何东西可以暴露在外面。正如CommonsWare在SO上所说的那样,“如果你没有任何东西需要揭露 - 请不要使用ContentProvider”。现在,我想添加widget来显示其中一个表中的几个字符串,存储在Database中。我应该将直接访问代码重构为 ContentProvider 模式吗?有没有办法从小部件直接访问数据库?有没有办法同时在一个应用程序中同时使用ContentProvider和数据库?
答案 0 :(得分:1)
现在,我想添加widget来显示其中一个表中的几个字符串,存储在数据库中。
我将假设“小部件”你的意思是“app widget”。
我应该将直接访问代码重构为ContentProvider模式吗?
您不必仅因为编写应用小部件而执行此操作。
有没有办法从小部件直接访问数据库?
当然,使用您在应用中其他任何位置使用的相同机制。
有没有办法让ContentProvider同时在一个应用程序中直接访问数据库?
是的,虽然你必须要小心确保在两种情况下都使用相同的SQLiteDatabase
对象,这样就不会遇到线程问题。