如何以编程方式从Android删除SQLite数据库

Jim*_*Jim 148 sqlite android

我想以Android file system编程方式删除数据库文件?我是否可以启动adbshell脚本,然后在Android空间中运行shell脚本来删除数据库?我可以在JUnit测试用例(通过system()电话)中完成此操作吗?

如何在Android中删除整个数据库?我需要让整个事情消失,这样我才能测试数据库创建.我可以放桌子,但这还不够.这是在模拟器中,而不是在手机上.

Luk*_*tan 403

获得Context并知道数据库的名称后,使用:

context.deleteDatabase(DATABASE_NAME);
Run Code Online (Sandbox Code Playgroud)

运行此行时,应删除数据库.

  • 确保在删除之前关闭所有数据库连接.否则你将不得不重新启动应用程序. (14认同)

Bar*_*ica 13

从shell中输入很简单:

adb shell
cd /data/data
cd <your.application.java.package>
cd databases
su rm <your db name>.db
Run Code Online (Sandbox Code Playgroud)

  • 这需要root,而**不是以编程方式**. (7认同)
  • @PeteH在模拟器上你不需要许可,但对于真正的设备,你需要扎根 (2认同)

Ric*_*lck 11

API 16中添加了SQLiteDatabase.deleteDatabase(文件文件)静态方法.如果要编写支持旧设备的应用程序,如何执行此操作?

我试过:file.delete();

但它弄乱了SQLiteOpenHelper.

谢谢.

没关系! 我后来意识到你正在使用Context .deleteDatabase().Context一个很好用,也删除了期刊.适合我.

另外,我发现在执行删除之前我需要调用SQLiteOpenHelp.close(),这样我就可以使用LoaderManager来重新创建它.


Dny*_*esh 11

尝试:

this.deleteDatabase(path); 
Run Code Online (Sandbox Code Playgroud)

要么

context.deleteDatabase(path);
Run Code Online (Sandbox Code Playgroud)


xte*_*ore 6

同样来自Eclipse,您可以使用DDMS,这非常容易.

只需确保您的模拟器正在运行,然后在Eclipse中切换到DDMS透视图.您可以完全访问文件资源管理器,这将允许您进入并轻松删除整个数据库.


小智 5

context.deleteDatabase("database_name.db");
Run Code Online (Sandbox Code Playgroud)

这可能会帮助某人。您必须提及该扩展名,否则它将不起作用。