它是如何工作的SQLiteOpenHelper Context

时间:2012-11-09 12:34:39

标签: android sqlite sqliteopenhelper android-context

我有一个有两项活动的应用程序。

其中一个列出了几个值,而另一个则向DB添加了新值。

我有一个从SQLiteOpenHelper扩展的类,并管理数据库连接,查询等。

现在,我知道在SQLiteOpenHelper的构造函数中,您必须传递一个上下文,该上下文用于确定是否必须创建新数据库或打开现有数据库。

但是如果我在每个活动中都有一个SQLiteOpenHelper类的实例,那么上下文就会有所不同。

有没有办法避免这种情况?

感谢。

3 个答案:

答案 0 :(得分:5)

传入Application上下文(.getApplication())而不是Activity。这样,两个实例都将使用相同的上下文访问数据库。

答案 1 :(得分:2)

Context可能不同但不会创建不同的数据库。 SQLiteOpenHelper constructor有一个name参数,即DB文件名。如果存在Context则无法创建。

答案 2 :(得分:1)

实际上,创建的数据库与上下文的应用程序包相关联。因此,无论您是否已通过Application上下文或Activity上下文,都无关紧要。

Context.java

$(this).addClass('liHoverMnue').find('a').addClass('aHoverMnue');