当应用程序关闭android时清除sqlite db

当应用程序关闭android时清除sqlite db,android,sqlite,Android,Sqlite,我想在应用程序关闭时删除我的sqlite数据库。我尝试使用一个全局类并跳过了onTerminate()方法 它不起作用对于未持久化到永久存储的内存中数据库,请使用null作为数据库文件名。对于未持久化到永久存储的内存中数据库,请使用null作为数据库文件名。如果每次应用程序关闭时都需要删除它,当应用程序关闭时,数据库的主要端口正在保存数据,为什么要使用数据库?这就像你每次出去都要拆毁一栋房子这里的“上下文()”是什么,deleteDatabase方法中发生了什么?您是否在应用程序清单中设置了此应

我想在应用程序关闭时删除我的sqlite数据库。我尝试使用一个全局类并跳过了onTerminate()方法



它不起作用

对于未持久化到永久存储的内存中数据库,请使用
null
作为数据库文件名。

对于未持久化到永久存储的内存中数据库,请使用
null
作为数据库文件名。

如果每次应用程序关闭时都需要删除它,当应用程序关闭时,数据库的主要端口正在保存数据,为什么要使用数据库?这就像你每次出去都要拆毁一栋房子这里的“上下文()”是什么,deleteDatabase方法中发生了什么?您是否在应用程序清单中设置了此应用程序类?@PierGiorgioMisley您的建议取决于您需要知道的实体数和操作数。如果每种类型有一个实体,那么也可以使用静态类。对于少量数据(如字符串或某些字段),您可以使用SharedReferences,…如果您需要在每次应用程序关闭时删除它,为什么在应用程序关闭时,当数据库的主端口正在保存数据时使用db?这就像你每次出去都要拆毁一栋房子这里的“上下文()”是什么,deleteDatabase方法中发生了什么?您是否在应用程序清单中设置了此应用程序类?@PierGiorgioMisley您的建议取决于您需要知道的实体数和操作数。如果每种类型有一个实体,那么也可以使用静态类。对于少量数据(如字符串或某些字段),您可以使用SharedReferences,……虽然这并不能回答问题,但我喜欢底层问题的替代解决方案。@leoderprofi这可以解决问题。他提供的方法会在每次关闭应用程序时自动删除数据库。(正如他所说,不是永久存储)从技术上说是的,但在某些情况下,它不能解决确切的问题,例如,当他想从其他进程创建的持久性存储中打开一个数据库,并在应用程序执行后删除该数据库时。我如何使用null作为数据库文件name@Hidee我猜您要传递给
SQLiteOpenHelper
超级构造函数的是
DbHelper.DATABASE\u NAME
。尽管这并不能回答问题问题,我喜欢潜在问题的替代解决方案。@leoderprofi这可以解决它。他提供的方法会在每次关闭应用程序时自动删除数据库。(正如他所说,不是永久存储)从技术上说是的,但在某些情况下,它不能解决确切的问题,例如,当他想从其他进程创建的持久性存储中打开一个数据库,并在应用程序执行后删除该数据库时。我如何使用null作为数据库文件name@Hidee我猜传递给
SQLiteOpenHelper
超级构造函数的是
DbHelper.DATABASE\u NAME
public class AppController extends Application {

private static AppController mInstance;

public Context context(){
    return mInstance.getApplicationContext();

}

@Override
public void onTerminate() {
    context().deleteDatabase(DbHelper.DATABASE_NAME);
    super.onTerminate();
}

}