如何删除Android Room数据库的文件?

2024-02-02

我已经实现了一个房间数据库,它是从资源文件中分发的SQLite资产助手 https://github.com/jgilfelt/android-sqlite-asset-helper第一次启动应用程序时。

数据库包含游戏状态数据,因此如果玩家想要重新开始,我想再次从资源复制数据库文件并覆盖“本地/内部”文件。

所以我的想法是删除内部数据库文件,以便SQLiteAssetHelper将再次从资源复制初始数据库。

谢谢你!

Kev


这是一个工作示例:

public static void deleteDatabaseFile(Context context, String databaseName) {
    File databases = new File(context.getApplicationInfo().dataDir + "/databases");
    File db = new File(databases, databaseName);
    if (db.delete())
        System.out.println("Database deleted");
    else
        System.out.println("Failed to delete database");

    File journal = new File(databases, databaseName + "-journal");
    if (journal.exists()) {
        if (journal.delete())
            System.out.println("Database journal deleted");
        else
            System.out.println("Failed to delete database journal");
    }
}

但老实说,我认为在运行时删除数据库既不安全也不可靠。您必须确保没有任何东西正在使用它,并且没有与数据库的任何打开的连接。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何删除Android Room数据库的文件? 的相关文章

  • 忽略(不提交)Git 跟踪的本地删除的文件

    我需要从 Git 存储库跟踪的文件系统中删除文件 并且希望将该文件保留在 Git 存储库中不变 不提交到存储库 对于本地修改的文件来说很容易 我使用更新索引的假定未更改选项并且它工作得很好 我需要对已删除的文件进行相同的行为 我尝试过这个但
  • 如何以编程方式清除 Android 中的 DataStore 首选项和房间数据 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在开发一个 Android 应用程序 当我按下按钮时 我需要以编程方式清除数据 包括数据存储首选项和房间数据 要清除共享首选项 Sha
  • SQLiteOpenHelper 与 ContentProvider

    我是 Android 开发新手 我正在尝试创建一个从内部数据库 SQLite 读取并列出列表中的所有数据的应用程序 我正在使用listView 到目前为止我有一门叫做DatabaseHandler延伸SQLiteOpenHelper这就是执
  • 删除与正则表达式匹配的文件

    在 Windows 上从与 Perl 中的某些正则表达式匹配的目录中删除所有文件的最短和最好的方法 我的例子 全部删除 txt目录中的文件 但保留tmp txt 视窗 chdir dir or die unlink grep ne tmp
  • Android 存储库模式

    我有几个关于存储库模式的问题 如果我仅使用离线数据库 例如带有 LiveData 的 Room 是否可以使用存储库模式 如果我的应用程序现在处于离线状态 但将来会连接到远程数据库 我是否应该实现存储库模式 或者稍后执行它不会成为问题 首先
  • 将房间数据库存储在 Google Drive 应用程序文件夹中?

    我还不熟悉Room https developer android com topic libraries architecture room html和 Google Drive API 我想知道是否可以创建 Room 数据库并将其存储在
  • 如何将 Room 数据库导出为 .db 以下载文件以便稍后使用?

    如何将 Room 数据库导出到 db 文件以便稍后使用 我想将其导出到 Android 设备存储中的下载文件夹 我已经设置导出到 CSV 但现在我需要导出到 db 这样 如果用户正在切换设备并且需要其他设备上的数据 我可以重新导入它 有没有
  • 如何以干净的方式创建通过外键与 Room DB 相关的行和子项?

    这个问题在某种程度上与我的最后一个问题 https stackoverflow com q 69384937 3692177 因为这是同一个项目 但现在我正努力向前迈进一步 所以 在我之前的问题中 我只有一张桌子 这次我有两个表 新的第二个
  • Java,Javafx MediaPlayer,即使使用 .dispose() 方法,似乎也不会释放 mp3 文件

    因此 我进行了相当多的搜索 但没有找到任何可以解决此问题的方法 发现有人在 2016 年问过 没有答案 而且做得有点不同 我还发现有些人不关心文件是否在退出时删除 或者在下次启动时删除 我确实这样做 我有一个应用程序 其中有一个按钮可以让用
  • 房间复合主键链接到外键

    我正在使用 Room 数据库实现一个 Android 应用程序 并且对这个数据库中的关系有一个小问题 我有两张桌子 Entity tableName foods primaryKeys id language id indices Inde
  • Room :来自 Dao 的 LiveData 将在每次更新时触发 Observer.onChanged,即使 LiveData 值没有变化

    我发现只要数据库中的行被更新 Dao 返回的 LiveData 就会调用它的观察者 即使 LiveData 值显然没有改变 考虑如下例所示的情况 示例实体 Entity public class User public long id pu
  • unlink 和 rm 在 unix 上的区别

    这两个命令之间真正的区别是什么 为什么删除文件的系统调用叫unlink代替delete 你需要了解一些关于原始 Unix 文件系统的知识才能理解这个非常重要的问题 与同时代的其他操作系统 60 年代末 70 年代初 不同 Unix 没有将文
  • 删除功能不起作用

    我正在开发一个应用程序 它有一个启动屏幕 可以下载几个文件 在文件开始下载之前 我想检查文件是否已经存在 如果存在 我想删除它们 下面显示的代码包含正确的文件路径 并且检查文件是否存在的函数似乎与 Logcat 中读出的状态 文件已删除 一
  • Android Room,如何保存一个实体,其中变量之一是密封类对象

    我想在我的 Room 数据库中保存一个对象 其中一个变量可以是一种类型或另一种类型 我认为密封类是有意义的 所以我采取了这种方法 sealed class BluetoothMessageType data class Dbm val da
  • Python中删除只读目录

    shutil rmtree不会删除 Windows 上的只读文件 有没有相当于 rm rf 的Python 为什么哦为什么这么痛苦 shutil rmtree可以采用一个错误处理函数 当删除文件时遇到问题时将调用该函数 您可以使用它来强制删
  • 如何在房间中制作复合钥匙

    我刚刚在房间里找到了 PrimaryKey 注释 那么如果我想制作复合键那么我该怎么做呢 利用primaryKeys Android 开发者文档 https developer android com reference android a
  • 具有 Room 和状态处理功能的 Kotlin 协程流

    我正在尝试新的协程流程 我的目标是创建一个简单的存储库 可以从 Web api 获取数据并将其保存到数据库 还可以从数据库返回流程 我使用 room 和 firebase 作为 Web api 现在一切看起来都非常简单 直到我尝试将来自 a
  • Android 2.X 和 3.X 上的 SQLiteOpenHelper 问题

    所以我犯了一个很大的错误 在 android 4 0 上测试我的代码 并认为它在其他版本上也能正常工作 但我在使用 SQLiteOpenHelper 时遇到 2 X 和 3 X 的问题 首先是代码 public class HelperDB
  • Firestore 作为离线持久性机制有多可靠?

    我目前使用 Firebase Firestore 作为主要后端 从各种来源检索数据 我还使用 Android 的 Room 作为我的移动后端 当手机接收到数据时 数据会存储在 Room 数据库中 以防用户几天甚至几周内不再上网 查看设备文件
  • Room - LiveData 观察器在数据库更新时不会触发

    我试图在下面的代码中找出 为什么在我用新数据填充数据库后 Room 的 LiveData observable 不会给我新的转变 这是放在我的活动的 onCreate 方法中 shiftsViewModel ViewModelProvide

随机推荐

  • 命名 PowerShell 动词的良好准则是什么?

    我还处于 PowerShell 学习的早期阶段 我想知道 Posh 中针对 cmdlet 或高级函数 无论它们在 CTP3 中如何称呼 的动词是否有一些好的指导方针 如果我使用 get 动词 我可以看到很多 但我仍然不确定应该如何布局我的模
  • ImageIO 无法写入 JPEG 文件

    我有一个 BufferedImage 我试图写入 jpeg 文件 但我的 Java 程序抛出异常 我能够成功地将相同的缓冲区保存为 gif 和 png 我尝试在 Google 上寻找解决方案 但没有成功 Code File outputfi
  • 具有断轴和交错颜色条的直方图

    我有这些数据 a b c d e alpha 5 51 0 60 0 12 26 90 76284 53 beta 3 39 0 94 0 17 0 20 0 20 gamma 7 98 3 34 1 41 7 74 28394 93 de
  • AWS RDS实例升级停机时间[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我有一些关于升级 RDS 实例的问题 将实例从小到大升级时的停机时间是多少 当您更改任何实例类型 小型 大型 超大 时 停机时间是否相对相
  • Spring boot CrudRepo 定义一个bean

    我在 Spring Boot 中遇到有关存储库的问题 我有一项服务 Service userService public class UserServiceImpl implements UserService Autowired priv
  • YouTube 嵌入:不安全的 JavaScript 尝试访问框架

    我们有一个 Wicket 应用程序 其页面包含嵌入的 Youtube 视频 视频嵌入并播放得很好 但显然它导致页面的其余部分无法渲染 似乎 DOM 元素来了after尽管嵌入在标记中 但嵌入根本不会显示在页面上 查看 Chrome 中的错误
  • 如何使用窗口标题启动powershell?

    我有一个批处理文件 允许我根据我的输入转到特定文件夹 d cd d test bits ECHO off cls start ECHO ECHO 1 Perl ECHO 2 Python set choice set p choice ty
  • Firebase 从 vagrant localhost:5000 提供服务

    我在 mac os high Sierra 上运行 vagrant ubuntu 16 04 我已将端口转发和符号链接设置为awesome local com 基本的node js Web应用程序运行完美 可以在指向awesome loca
  • 如何从 IntelliJ 中删除通过 pom.xml 添加的依赖项?

    我将 Spring Security 添加到 pom xml 和 IntelliJ IDEA 中的依赖项中 然后下载它 我检查了 http localhost 8080 并重定向到 http localhost 8080 login 我现在
  • Java支付网关库[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找类似于 Rails active merchant 的 Java 支付网关库或许多其他平台上可
  • Node.js 续集关联,包含条件

    是否可以在 findAll 查询的包含数组中传递条件 例如 我有 UsersModel PostsModel 和 UserVotesModel 用户可以对帖子进行投票 对于登录用户 我想查询帖子并仅包含当前用户的投票 我无法使用 Seque
  • 在Notepad++中选择换行符

    我注意到 当我加载文本文件时 Notepad 将识别并使用该文件中的任何换行符 n or r n 是否有一些选项可以让我选择默认情况下用于新文档的选项 我查看了帮助并用谷歌搜索 但找不到任何东西 对于任何新文档 Settings gt Pr
  • 如何用MySQL生成随机字符并插入? [复制]

    这个问题在这里已经有答案了 复制 向 MYSQL 数据库插入随机字符 https stackoverflow com questions 2498310 inserting random characters to mysql databa
  • Django Apache/mod_python 管理 CSS 未与管理表一起出现

    我的 Windows XP Django apache mod python 在本地主机上运行 除了管理 CSS 不渲染之外 所有部分都正常工作 管理员可以工作 但没有 html 格式 我做了补充 settings py INSTALLED
  • 字符串内容相同,但 equals 方法返回 false

    我正在使用 StringEscapeUtils 来转义和取消转义 html 我有以下代码 import org apache commons lang StringEscapeUtils public class EscapeUtils p
  • 如何将二进制数据“按原样”写入注册表(即:我仅将可见的二进制数据作为来自注册表编辑器的字符串)

    我一直在谷歌上搜索这个问题 一整天都没有找到可行的解决方案 我对二进制数据类型一无所知 因为我从来没有故意使用过它们 并且我正在尝试将我在注册表中看到的二进制值写入注册表 现在 我看到的只是以下内容 如下所示 如果我尝试将其作为字符串传递给
  • 如何合并二进制文件?

    我的my branch中有一个二进制文件 当我需要对其进行更改时 git当然不会合并它 所以我现在做的是 git checkout my branch make a change to gui bin mv gui bin git comm
  • k3d 尝试拉取 Docker 镜像而不是使用本地镜像

    只需在本地机器 Linux Mint 20 2 上研究K8S的核心即可 使用以下命令在本地创建一个节点集群 k3d集群创建mycluster 现在我想在容器中运行 spring boot 应用程序 我构建本地图像 库 0 1 0 这是摘自D
  • 如何摆脱 jQuery 数据表插件的分页?

    我怎样才能删除分页 and showjQuery 的特点数据表 http datatables net 我只想要它的搜索和排序功能 并想摆脱其他功能 有什么办法吗 如果你不使用 jQuery UI 主题 你可以这样做 document re
  • 如何删除Android Room数据库的文件?

    我已经实现了一个房间数据库 它是从资源文件中分发的SQLite资产助手 https github com jgilfelt android sqlite asset helper第一次启动应用程序时 数据库包含游戏状态数据 因此如果玩家想要