Android应用级别下关闭和打开SQLite数据库

4
我有一个在应用程序级别声明和存储的SQLite数据库。我处理设备旋转等配置更改,因此关闭数据库时,我将其设置在MainActivity的onDestroy中,但要放在if(this.isFinishing())内。
问题在于,如果在关闭应用程序后立即尝试再次启动它,它会崩溃并告诉我尝试打开已关闭的数据库。下一次启动时它将正确启动。我想这是因为Android从未真正关闭应用程序,因为没有必要,而且它仍然在后台运行。
我找不到在应用程序级别检测onFinish / onDestroy的方法,以在那里关闭数据库。我唯一的解决办法是不关闭数据库。但是,如果Android真正关闭了我的应用程序,这可能会给我带来问题,当我尝试再次打开它时,不是吗?
有方法强制关闭应用程序吗?(我认为没有) 是否有办法检测应用程序关闭以在那里关闭数据库? 如果Android关闭了将要关闭的应用程序链接的数据库,那么尝试打开未关闭的数据库是否会有问题?
1个回答

2
我唯一能做的解决方法就是不关闭数据库。
正确,这是正确的答案。
但是,如果Android真正关闭了我的应用程序,那么这可能会给我带来问题,无法再次打开它,对吗?
不会。
有没有办法检测应用程序的关闭,然后在那里关闭数据库?
没有。
如果Android关闭与即将关闭的应用程序相关联的数据库,我尝试打开一个未关闭的数据库会有问题吗?
不会。
或者Android关闭与即将关闭的应用程序相关联的数据库?
不会。
关闭数据库实际上并没有做太多事情。SQLite是事务性的;当您执行这些事务时,所有数据库写入操作都会写入磁盘。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接