0

我有一个应用程序,它使用直接数据访问它的数据库。除了其他应用程序外,我没有什么可以暴露的。正如CommonsWare在SO上说的,“如果你没有什么可以暴露的 - 不要使用ContentProvider”。现在,我想添加小部件,以显示一个表中的几个字符串,存储在数据库中。我是否应该将直接访问代码重构为ContentProvider模式?有没有一种方法可以使用直接从窗口小部件访问数据库?有没有办法让ContentProvider和直接访问一个应用程序中的数据库?是否可以在Android中使用ContentProvider并直接访问数据库?

+0

我已经打开了一个类似的问题,但在我的情况下,小部件应用程序是一个单独的应用程序。所以建议的答案是不适用的。 http://stackoverflow.com/questions/8403569/is-it-possible-to-use-contentprovider-and-direct-data-access-to-database-in-andr – Thierry

回答

1

现在,我想添加小部件来显示一个表中的几个字符串,存储在数据库中。

我将假设通过“小部件”,你的意思是“应用小部件”。

我应该重构直接访问代码到ContentProvider模式吗?

您不必因为您正在编写应用程序小部件而这样做。

有没有办法直接访问数据库的小部件?

当然,使用您在应用程序中其他任何位置使用的相同机制。

有没有一种方法可以在一个应用程序中同时拥有ContentProvider和直接访问数据库?

是的,但你必须要小心一点,以确保您使用的是相同的SQLiteDatabase对象在这两种情况下,这样你就不会遇到线程问题。

相关问题