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