【问题标题】:How to update Sqlite DB in asset folder, not the copy DB?如何更新资产文件夹中的 Sqlite DB,而不是复制 DB?
【发布时间】:2019-01-30 14:01:03
【问题描述】:

我需要处理放置在 Android 项目资产文件夹中的 sqlite db。 问题是我们通常在运行时创建资产数据库的副本,所有查询都在这个副本上完成,但问题是当我清除缓存时,它会删除所有更新;所以我需要更新资产文件而不是运行时创建的副本。

我可以插入更新删除资产sqlite文件吗?

实际上我想保留对 DB 的修改,并且我不想在从设置中清除应用程序数据时丢失这些更改。

【问题讨论】:

标签: android sqlite assets


【解决方案1】:

不能在 .apk 构建后修改其资源(资产、原始、可绘制等)。它们是只读的,因此所输入的内容将始终保持原样 - 直到您使用较新的内容更新 .apk。

【讨论】:

    【解决方案2】:

    一旦生成了apk文件只读,清除缓存后就无法获取旧记录,甚至无法更新资产文件。是的,如果您需要有关如何使用已准备好的数据库的帮助,那么此链接肯定会对您有所帮助。

    Using your own SQlite Database in android applications

    而且我认为如果您可以从 assets 文件夹中复制数据库,那么您也可以从 sdcard 中获取它。不太了解。

    【讨论】:

    • 谢谢,是的,你是对的; Joachim Isaksson 在上面显示了关于在 sdcard 上创建 db 的链接...实际上,主要问题是即使在清除缓存后仍保留更改;类似 COMMIT
    • 看你说的commit部分,和清除缓存数据一样,清除后不能保存,但最好从txt文件管理,比如用户凭证。一个清除缓存的人,definatley,需要在他出现问题时格式化应用程序的所有数据。所以最好不要修改android应用程序的性质。而不是您可以要求用户备份其设置或任何内容。如果用户想清除它,那就让他去做。
    猜你喜欢
    • 1970-01-01
    • 2017-09-17
    • 1970-01-01
    • 1970-01-01
    • 2018-08-25
    • 1970-01-01
    • 1970-01-01
    • 2015-04-08
    • 2015-07-17
    相关资源
    最近更新 更多