如何以编程方式从Android删除SQLite数据库
我想以编程方式从Android file system
删除数据库文件? 我可以有一个shell脚本启动adb
轮stream在Android空间运行一个shell脚本来删除数据库吗? 我可以从一个JUnit
testing用例(用system()
调用)完成这个工作吗?
如何在Android中删除整个数据库? 我需要使整个事情消失,所以我可以testing数据库的创build。 我可以放桌子,但这还不够。 这是在模拟器中,而不是在电话上。
一旦你有你的上下文,并知道数据库的名称,使用:
context.deleteDatabase(DATABASE_NAME);
当这一行运行时,数据库应该被删除。
从你的shell中input内容很简单:
adb shell cd /data/data cd <your.application.java.package> cd databases su rm <your db name>.db
尝试:
this.deleteDatabase(path);
要么
context.deleteDatabase(path);
在API 16中添加了SQLiteDatabase.deleteDatabase(File file)静态方法。如果要编写支持较旧设备的应用程序,那么如何执行此操作?
我试过: file.delete();
但是它搅乱了SQLiteOpenHelper。
谢谢。
没关系! 后来我意识到你正在使用Context .deleteDatabase()。 上下文工作很好,也删除了日记。 为我工作。
此外,我发现我需要在删除之前调用SQLiteOpenHelp.close() ,以便我可以使用LoaderManager来重新创build它。
从Eclipse也可以使用DDMS,这很容易。
只要确保你的模拟器正在运行,然后在Eclipse中切换到DDMS的angular度。 您将可以完全访问文件资源pipe理器,这将允许您进入并轻松删除整个数据库。
context.deleteDatabase(DATABASE_NAME); 只有在所有连接都closures的情况下才会删除数据库。 如果你正在维护单例实例来处理你的数据库帮助器 – 很容易closures打开的连接。
通过直接实例化数据库帮助程序在多个位置使用,即使某些连接打开,deleteDatabase + killProcess也会执行该任务。 如果应用程序scheme在重新启动应用程序时没有任何问题,则可以使用此方法。
从应用程序pipe理器,您可以删除整个应用程序的数据。 或者只是它自己的数据。 这包括数据库。
-
导航到设置。 您可以在应用程序菜单中进入设置菜单,或者在大多数电话上,通过拉下通知抽屉并点击button。
-
select应用程序子菜单。 在某些电话上,这个菜单将有一个稍微不同的名字,比如Application Manager。
-
向右滑动到所有应用程序列表。 忽略正在运行和已下载的应用程序的列表。 你想要所有的应用程序列表。
-
select你想要禁用的应用程序。 出现一个属性屏幕,在左上angular有一个用于强制停止的button,另一个用于右上angular的禁用或卸载更新。
-
删除数据。
你可以去你的模拟器>设置>应用程序>。 然后单击要从中删除数据库的应用程序,然后单击>清除数据。 。