Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 当应用程序关闭时,如何清除数据库?_Java_Android_Android Activity_Android Sqlite - Fatal编程技术网

Java 当应用程序关闭时,如何清除数据库?

Java 当应用程序关闭时,如何清除数据库?,java,android,android-activity,android-sqlite,Java,Android,Android Activity,Android Sqlite,我需要在关闭应用程序后清除应用程序的数据库并删除所有表。我决定在一些活动的onDestroy中实现这一点。据我所知,所有onDestroy方法都是在应用程序完成运行时调用的。但如果这是一种不好的做法,请建议在应用程序关闭时使用其他方法清除数据库。这不是一个好的选择,因为无法保证在应用程序关闭时调用。它可能会被系统立即终止,在这种情况下,您将无法清除数据。如文件所述: 注意:不要指望调用此方法作为保存数据的位置!例如,如果活动正在编辑内容提供程序中的数据,则这些编辑应在onPause或onSave

我需要在关闭应用程序后清除应用程序的数据库并删除所有表。我决定在一些活动的onDestroy中实现这一点。据我所知,所有onDestroy方法都是在应用程序完成运行时调用的。但如果这是一种不好的做法,请建议在应用程序关闭时使用其他方法清除数据库。

这不是一个好的选择,因为无法保证在应用程序关闭时调用。它可能会被系统立即终止,在这种情况下,您将无法清除数据。如文件所述:

注意:不要指望调用此方法作为保存数据的位置!例如,如果活动正在编辑内容提供程序中的数据,则这些编辑应在onPause或onSaveInstanceStateBundle中提交,而不是在此处提交。此方法通常用于释放资源,如与活动关联的线程,以便在其应用程序的其余部分仍在运行时,已销毁的活动不会留下此类内容。在某些情况下,系统会简单地终止活动的宿主进程,而不调用此方法或其中的任何其他方法,因此不应使用此方法来执行希望在进程结束后保留的操作

相反,您应该创建一个扩展的类,并在方法中删除表(如果存在),因为该方法在应用程序的生命周期中只调用一次


但是,如果您觉得每次应用程序停止运行时都需要清除数据,您应该重新考虑使用数据库,因为它们是用于持久存储的。

这不是一个好的选择,因为无法保证在应用程序关闭时会调用它。它可能会被系统立即终止,在这种情况下,您将无法清除数据。如文件所述:

注意:不要指望调用此方法作为保存数据的位置!例如,如果活动正在编辑内容提供程序中的数据,则这些编辑应在onPause或onSaveInstanceStateBundle中提交,而不是在此处提交。此方法通常用于释放资源,如与活动关联的线程,以便在其应用程序的其余部分仍在运行时,已销毁的活动不会留下此类内容。在某些情况下,系统会简单地终止活动的宿主进程,而不调用此方法或其中的任何其他方法,因此不应使用此方法来执行希望在进程结束后保留的操作

相反,您应该创建一个扩展的类,并在方法中删除表(如果存在),因为该方法在应用程序的生命周期中只调用一次

但是,如果您觉得每次应用程序停止运行时都需要清除数据,您应该重新考虑使用数据库,因为它们是用于持久存储的。

请退出

至于何时删除所有表,最佳做法是,如果返回true,则在onPause中执行该操作,或释放任何其他资源

快速提示:如果您的应用程序由许多活动组成,那么您当然应该只在根活动的onPause中调用它

祝你好运

退房

至于何时删除所有表,最佳做法是,如果返回true,则在onPause中执行该操作,或释放任何其他资源

快速提示:如果您的应用程序由许多活动组成,那么您当然应该只在根活动的onPause中调用它


祝你好运

你有工作吗?数据库从一开始就不会保存到持久性存储中,只有在进程处于活动状态且数据库连接处于打开状态时,数据库才会存在。

这对您有用吗?数据库从一开始就不会保存到持久性存储中,只有在进程处于活动状态且数据库连接处于打开状态时,数据库才会存在。

如果用户将应用程序置于后台,Android最终会终止进程,无需调用任何活动的onDestroy方法。你可以在应用程序启动时清除所有旧数据并重新创建数据库…如果你的用户将应用程序置于后台,Android最终将终止该进程,不调用任何活动的onDestroy方法。你可以在应用程序启动时清除所有旧数据并重新创建数据库。。。