我有一个有两项活动的应用程序。
其中一个列出了几个值,而另一个则向DB添加了新值。
我有一个从SQLiteOpenHelper扩展的类,并管理数据库连接,查询等。
现在,我知道在SQLiteOpenHelper的构造函数中,您必须传递一个上下文,该上下文用于确定是否必须创建新数据库或打开现有数据库。
但是如果我在每个活动中都有一个SQLiteOpenHelper类的实例,那么上下文就会有所不同。
有没有办法避免这种情况?
感谢。
答案 0 :(得分:5)
传入Application上下文(.getApplication())而不是Activity。这样,两个实例都将使用相同的上下文访问数据库。
答案 1 :(得分:2)
Context
可能不同但不会创建不同的数据库。 SQLiteOpenHelper constructor有一个name
参数,即DB文件名。如果存在Context
则无法创建。
答案 2 :(得分:1)
实际上,创建的数据库与上下文的应用程序包相关联。因此,无论您是否已通过Application上下文或Activity上下文,都无关紧要。
$(this).addClass('liHoverMnue').find('a').addClass('aHoverMnue');