gpt4 book ai didi

android - 当 Realm 文件更改时, Realm 不会在运行时更新

转载 作者:行者123 更新时间:2023-11-30 01:41:15 25 4
gpt4 key购买 nike

我有一个 Android 手机应用程序通过数据项 API 将整个 Realm 文件发送到穿戴应用程序。 Wear 应用程序上有一项服务可以用手持设备发送的最新文件替换本地 Realm 文件。问题是在运行时收到新的 Realm 文件后,Wear 应用程序的 ListView 不会更新。它确实在重新启动 wear 应用程序后显示新数据。有什么方法可以告诉 Realm , Realm 文件是在运行时手动更改的吗?

最佳答案

这是一个非常有趣的用例!

但我担心你现在所做的事情可能会导致意想不到的结果。

当穿戴应用程序打开 Realm(比方说 Realm-file-A)时,Realm 将打开一个文件描述符并使用它直到它关闭。即使打开文件描述符,也可以使用文件 API/系统命令删除/覆盖 Realm 文件。现在,当文件被删除并且 Realm 仍然打开时,应用程序仍然可以运行而不会出现任何崩溃,这是由操作系统保证的。看这个question理解这种行为。

因此在您的情况下,由于穿戴应用程序中的 Realm 未关闭(我猜),在 Realm 文件被手持设备中的另一个文件替换后(比方说 Realm-file-B), Wear 应用程序中所有已打开的 Realm 实例仍将读取/写入前一个实例 -- Realm-file-A。新创建的 Realm 实例将在 Realm-file-B 上运行。 Realm 不处理这种情况,您可能会遇到奇怪的不一致问题。

所以建议是,在将整个 Realm 文件发送到 wear 应用程序之前,确保 wear 应用程序中的所有 Realm 实例都已关闭。发送后,再次打开Realm实例,手动刷新 ListView 。

然而,Realm 应该更好地支持这一点。创建问题以跟踪此 https://github.com/realm/realm-java/issues/2007 .

关于android - 当 Realm 文件更改时, Realm 不会在运行时更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34480728/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com