2016-09-22 145 views
0

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

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(); 
} 

} 

它不工作

+3

如果每次应用程序关闭时都需要删除它,为什么在应用程序关闭时为其使用数据库的主要部分保存数据?这就像每次出门时拆毁房屋 –

+0

这里的“context()”是什么? ,deleteDatabase方法中发生了什么?你在应用程序清单中设置了这个应用程序类吗? –

+0

@PierGiorgioMisley你有什么建议 – Idee

回答

5

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

+0

虽然这不能回答这个问题,但我喜欢解决底层问题的替代解决方案。 – leoderprofi

+1

@leoderprofi这个解决它。他提供的方法每次关闭应用程序时都会自动删除数据库。 (正如他所说的,对永久性存储不持久) –

+0

从技术上说是的,但有些情况下它不能解决确切的问题。当他想从由其他进程创建的持久性存储打开数据库时,并在应用程序执行后删除该数据库。 – leoderprofi

相关问题