在关闭应用程序后,我需要清除应用程序的数据库(删除所有表)。 我决定在某个Activity的onDestroy()中实现这一点。据我所知,当应用程序运行完毕时,所有onDestroy()方法都会被调用。
但如果这是一种不好的做法,请推荐其他在关闭应用程序时清除数据库的方法。
但如果这是一种不好的做法,请推荐其他在关闭应用程序时清除数据库的方法。
相反,您应该创建一个扩展Application的类,并在onCreate()方法中删除表(如果存在),因为该方法只在应用程序的生命周期中调用一次。注意:不要指望该方法被调用来保存数据!例如,如果活动在内容提供程序中编辑数据,则应在 onPause() 或 onSaveInstanceState(Bundle) 中提交这些编辑,而不是在此处。通常实现此方法是为了释放与活动关联的线程等资源,以便销毁的活动在其应用程序的其他部分仍在运行时不会留下这些东西。有些情况下,系统会简单地杀死活动的托管进程,而不在其中调用此方法(或任何其他方法),因此不应使用它来执行希望在进程消失后仍然存在的任务。
请查看这个答案。
至于何时删除所有表格,最佳实践应该是在onPause()
中执行此操作或释放任何其他资源,如果isFinishing()
返回true。
快速提示:如果您的应用程序由许多活动组成,则当然只需在根活动的onPause()
中调用此函数。
祝你好运!
onDestroy()
方法。 - David Wasser