我有一个在应用程序级别声明和存储的SQLite数据库。我处理设备旋转等配置更改,因此关闭数据库时,将其设置在MainActivity的onDestroy内,但设置在if(this.isFinishing())内。
我的问题是,如果在关闭应用程序后立即尝试再次启动它,它会崩溃,告诉我它试图打开一个已经关闭的数据库。下次它将正确启动。我猜这是因为Android从来没有因为没有需要而真正关闭过该应用程序,而且它仍然处于后台。
我找不到在应用程序级别检测onFinish / onDestroy ...的方法来在那里关闭数据库。我唯一可以解决的方法是不关闭数据库。但这可能给我带来问题,也许是在Android真正关闭我的应用程序的情况下尝试再次打开它时,不是吗?
有办法强制关闭应用程序吗?(我认为没有)。有没有一种方法可以检测到应用程序的关闭,以在那里关闭数据库?如果应用程序被Android关闭,我会在尝试打开未关闭的数据库时遇到问题吗?还是Android关闭链接到将要关闭的应用程序的数据库?
我唯一可以解决的方法是不关闭数据库
正确,这是正确的答案。
但这可能给我带来问题,也许是在Android真正关闭我的应用程序的情况下尝试再次打开它时,不是吗?
没有。
有没有一种方法可以检测到应用程序的关闭,以在那里关闭数据库?
没有。
如果应用程序被Android关闭,我会在尝试打开未关闭的数据库时遇到问题吗?
没有。
还是Android关闭链接到将要关闭的应用程序的数据库?
没有。
关闭数据库实际上并没有那么做。SQLite是事务性的;执行这些事务时,所有数据库写操作都将写入磁盘。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句