【发布时间】:2014-09-21 02:36:09
【问题描述】:
我有一个在应用程序级别声明和存储的 SQLite 数据库。我处理诸如设备旋转之类的配置更改,因此我将数据库的关闭设置在 MainActivity 的 onDestroy 中,但在 if(this.isFinishing()) 中。
我遇到的问题是,如果在关闭应用程序后我尝试再次启动它,它会崩溃并告诉我它试图打开一个已经关闭的数据库。下次它将正确启动。我猜这是因为 Android 从来没有真正关闭过应用程序,因为没有必要,它仍然在后台。
我找不到在应用程序级别检测 onFinish/onDestroy.... 以关闭那里的数据库的方法。 我能做的唯一解决方法是不关闭数据库。但这可能会给我带来问题,也许在尝试再次打开它时,以防 Android 真的关闭了我的应用程序,不是吗?
有没有办法强制关闭应用程序? (我认为没有)。 有没有办法检测应用程序的关闭以关闭那里的数据库? 如果应用程序被 Android 关闭,我在尝试打开未关闭的数据库时会遇到问题吗?还是 Android 会关闭链接到将要关闭的应用程序的数据库?
【问题讨论】:
标签: android sqlite application-lifecycle