我知道已经有很多关于这个的问题和答案了,但我找不到任何确凿的答案,说我想做的事情还可以。
基本上我想要一个在SQLiteOpenHelper
中实例化的单身MyApplication.onCreate()
(我扩展Application
)。这样,我的代码只需要调用单例的getWritableDatabase()
,我不必担心管理数据库是打开还是关闭,或者担心拆除和建立连接。
我认为连接将保持打开状态,直到我调用我计划从未执行过的单例close()
,因此只要应用程序正在运行,连接就会保持打开状态。当应用程序被终止时,整个进程都会被终止,因此db连接将被它杀死,以及与db绑定的任何资源。然后,下次运行应用程序时,我再次实例化单例,继续我的业务。
这是个坏主意吗?即使进程被终止,我是否可以遇到没有关闭数据库连接的问题?我之所以这样做是因为我的很多代码都没有与Activity
生命周期紧密耦合,基于它来管理数据库生命周期真的很头疼。