storage - 重命名 App Inventor 项目会清除 TinyDB 吗?
问题描述
我在 App Inventor 中有一个使用 TinyDB 的项目。在这个项目中,我添加了一个我无法删除且不想要的扩展。
为了解决这个问题,我制作了应用程序的副本,将副本下载为 aia,解压缩项目并修复问题,然后将其重新压缩。
然后我删除了 AI 上的副本,以便我可以上传更改后的版本。一切都按计划进行,现在我有一个有问题的应用程序和一个使用不同名称的固定项目。
我的问题是,如果我删除问题应用程序并以原始名称另存为副本,TinyDB 中的标签是否仍然存在,或者它们是否会位于我无法再访问的单独数据库中?
解决方案
我用我制作的一个简单的应用程序测试了这个问题。以下是我遵循的步骤,如果您想得出结论,可以跳到底部:
方法:
- 创建项目
- 拖入一个列表视图组件、两个文本框、一个 tinyDB 和一个按钮。它不必看起来很漂亮,它必须是功能性的
- 转到块
- 添加下面的块
- 构建 apk 并将其安装在您的设备上。至少存储 1 个标签。
- 回到人工智能。在项目中,单击 Project>save as... 并将项目名称保留为默认值。
- 删除原来的
- 在副本中,单击 Projects>save as... 并将名称设置为您使用的原始名称。
- 构建 apk 并将其安装在设备上。不要卸载您安装的第一个应用程序。
- 确认您添加的条目仍在应用程序中。
结论:
对此进行测试时,我发现 tinyDB 中的数据会从其他版本的应用程序中保留下来。我认为这是因为项目名称相同,我使用相同的数字签名为应用程序签名,并且 tinyDB 命名空间相同。
因此,可以安全地更改应用程序的名称,然后再将其更改回来,而不会丢失用户设备上的数据。
进一步的步骤:
我还想在下载 aia、解压缩、然后将其重新压缩并上传时测试这是否有效。我认为这会产生相同的结果,但我还没有测试它。
推荐阅读
- javascript - 自定义标题不占用堆栈栏中的全部空间
- amazon-s3 - 将本地文件与 s3 存储桶进行比较,并确定哪些文件(完整路径)不在存储桶中
- php - 如果字符串没有被引号包围,则正则表达式匹配
- multithreading - JMeter 5.2.1 - 线程数和循环数
- python - QFrame内的Vlc播放器
- javascript - 运行 https:/username/github.io/index.html 时出现 ERR_ABORTED 404 错误
- java - Spring Boot 控制器如何与其他包中的对象通信?
- satellite - 我想在地图上显示陆地卫星图像(网络应用程序)
- rust - 如何在 Actix-Web 中为多种方法使用路由属性宏
- google-sheets - Google 表格导入多个 HTML 表格图像