我想从 Android file system程序删除数据库文件?我可以有一个 shell 脚本启动 adb,然后在 Android 空间中运行一个 shell 脚本来删除数据库吗?我是否可以在 JUnit测试用例(使用 system()调用)中完成这项工作?
Android file system
adb
JUnit
system()
如何在 Android 中删除整个数据库?我需要让整个事情消失,这样我就可以测试数据库创建。我可以摔桌子,但这还不够。这是在模拟器里,不是在手机上。
从 shell 中输入很简单:
adb shell cd /data/data cd <your.application.java.package> cd databases su rm <your db name>.db
在 Eclipse 中你也可以使用 DDMS,这使得它非常简单。
只要确保模拟器正在运行,然后在 Eclipse 中切换到 DDMS 透视图。您可以完全访问文件资源管理器,这将允许您进入并轻松删除整个数据库。
一旦你有了上下文并且知道了数据库的名字,使用:
context.deleteDatabase(DATABASE_NAME);
运行此行时,应删除数据库。
在 API 16中添加了 SQLiteDatabase.delete teDatabase (File File)静态方法。如果你想编写支持旧设备的应用程序,你该怎么做?
我试过: Delete () ;
但它搞砸了 SQLiteOpenHelper。
谢谢。
算了! 我后来意识到您正在使用 背景.delete teDatabase ()。上下文一个工程伟大,并删除杂志也。我没问题。
另外,我发现在执行删除之前需要调用 SQLiteOpenHelp.close (),这样我就可以使用 LoaderManager 来重新创建它。
Delete teDatabase (DATABASE _ NAME) ; 仅当所有连接都关闭时才删除数据库。如果您正在维护单例实例来处理数据库助手-关闭打开的 Connection 很容易。
如果通过直接实例化在多个位置使用数据库帮助器,那么哪怕打开了一些连接,delteDatabase + kill Process 也会执行该任务。如果应用程序场景在重新启动应用程序时没有任何问题,则可以使用此方法。
从应用程序管理器,您可以删除整个应用程序的数据。或只是数据自己。这包括数据库。
导航到 Settings 你的应用程序菜单,或者,在大多数手机上,通过下拉通知 抽屉里有一个按钮 选择 Apps 子菜单。 在一些手机上,这个菜单会有一个 名称略有不同,如 Application Manager 向右滑 忽略正在运行和下载的应用程序列表。 你想要所有的应用程序列表 选择您希望禁用的应用程序 在左上角有一个“强制停止”按钮,另一个按钮用于其中一个 禁用或卸载右上角的更新。 删除数据。
选择 Apps 子菜单。 在一些手机上,这个菜单会有一个 名称略有不同,如 Application Manager
向右滑 忽略正在运行和下载的应用程序列表。 你想要所有的应用程序列表 选择您希望禁用的应用程序 在左上角有一个“强制停止”按钮,另一个按钮用于其中一个 禁用或卸载右上角的更新。 删除数据。
选择您希望禁用的应用程序 在左上角有一个“强制停止”按钮,另一个按钮用于其中一个 禁用或卸载右上角的更新。
删除数据。
试试:
this.deleteDatabase(path);
或者
context.deleteDatabase(path);
context.deleteDatabase("database_name.db");
这可能对某人有帮助。你必须提到延期,否则,它不会工作。
我使用 Android 数据库删除方法和数据库删除成功
public bool DeleteDatabase() { var dbName = "TenderDb.db"; var documentDirectoryPath = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal); var path = Path.Combine(documentDirectoryPath, dbName); return Android.Database.Sqlite.SQLiteDatabase.DeleteDatabase(new Java.IO.File(path)); }
卸载应用程序时删除旧的数据库。
在 AndroidManifest.xml中的应用程序标记中设置 Android: allowBackup = “ false”修复了这个问题。似乎出于某种奇怪的原因,每次我部署应用程序时,Android 操作系统都会从备份中恢复。
您可以创建一个 当前数据库路径的文件对象,然后删除它,因为我们从文件夹中删除文件
File data = Environment.getDataDirectory(); String currentDBPath = "/data/com.example.demo/databases/" + DATABASE_NAME; File currentDB = new File(data, currentDBPath); boolean deleted = SQLiteDatabase.deleteDatabase(currentDB);
在更改了资产中数据库的结构之后,我在设备上使用以下内容来“格式化”数据库。当我希望再次从资产中读取数据库时,我只需取消 MainActivity 中的行的注释。这将重置设备数据库的值和结构,使其与资产文件夹中占用的数据库匹配。
//database initialization. Uncomment to clear the database //deleteDatabase("questions.db");
接下来,我将实现一个按钮,该按钮将运行 delete teDatabase,以便用户可以重置其在游戏中的进度。