首页 文章

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

提问于
浏览
141

我想以编程方式从 Android file system 删除数据库文件?我可以使用shell脚本启动 adb ,然后在Android空间中运行shell脚本来删除数据库吗?我可以在 JUnit 测试用例(带有 system() 调用)中完成此操作吗?

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

8 回答

  • 3

    尝试:

    this.deleteDatabase(path);
    

    要么

    context.deleteDatabase(path);
    
  • 3

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

    我试过了: file.delete();

    但它弄乱了SQLiteOpenHelper .

    谢谢 .

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

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

  • -2

    context.deleteDatabase(DATABASE_NAME);仅在关闭所有连接时才会删除数据库 . 如果要维护单例实例以处理数据库帮助程序 - 可以轻松关闭打开的连接 .

    通过直接实例化,可以在多个地方使用databasehelper,即使某些连接打开,deleteDatabase killProcess也可以完成这项工作 . 如果应用程序方案在重新启动应用程序时没有任何问题,则可以使用此方法 .

  • 10
    context.deleteDatabase("database_name.db");
    

    这可能对某人有帮助 . 你必须提到扩展,否则它将无法工作 .

  • 15

    在Application Manager中,您可以删除包含数据的整个应用程序 . 或者只是自己的数据 . 这包括数据库 .

    • Navigate to Settings. 您可以在应用程序菜单中进入设置菜单,或者在大多数手机上,通过拉下通知抽屉并点击那里的按钮 .

    • Select the Apps submenu. 在某些手机上,此菜单的名称略有不同,例如“应用程序管理器” .

    • Swipe right to the All apps list. 忽略正在运行和已下载的应用列表 . 您想要所有应用列表 .

    • Select the app you wish to disable. 出现一个属性屏幕,左上角有一个强制停止按钮,另一个右上角有禁用或卸载更新 .

    • Delete data.

  • 9

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

    context.deleteDatabase(DATABASE_NAME);
    

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

  • 393

    从shell中输入很简单:

    adb shell
    cd /data/data
    cd <your.application.java.package>
    cd databases
    su rm <your db name>.db
    
  • 5

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

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

相关问题