我有一个sqlite数据库声明并在应用程序级别存储。我处理配置更改等设备旋转,因此我将它的关闭我在ondestroy内部的主动作中设置,但在一个if(this.isfinishing())。

我所拥有的问题是,如果只是在关闭应用程序之后,我会尝试再次启动它,它崩溃了告诉我它试图打开已关闭的数据库。下次它将正确启动。我想这是因为Android从来没有真正关闭过应用程序,因为没有必要,它仍然在后台。

我找不到检测infinish / ondestroy的方法....在应用程序级别,关闭数据库。 我能做的唯一解决方法是不关闭数据库。但这可以给我问题可能会在尝试再次打开它的情况下在Android真正关闭我的应用程序时,没有?

是否有一种方法来强制关闭应用程序? (我想没有)。 有没有办法检测应用程序的关闭以关闭数据库? 如果应用程序由Android关闭,我是否会出现尝试打开未关闭数据库的问题?或Android关闭数据库链接到它将要关闭的应用程序?

有帮助吗?

解决方案

我可以做的唯一解决方法是不要关闭数据库

正确,这是正确的答案。

但是这可以给我问题,也许在尝试再次打开它的情况下在Android真正关闭我的应用程序时,没有?

no。

有没有办法检测应用程序的关闭以关闭数据库?

no。

如果应用程序由Android关闭,我会尝试打开一个未关闭的数据库吗?

no。

或Android关闭数据库链接到它将要关闭的应用程序?

no。

关闭数据库并不真正做得那么多。sqlite是交易的;执行这些事务时,所有数据库写操作都将写入磁盘。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top