如果在另一个进程中编辑,sharedPreferences 不会更新

sharedPreferences wont update if edited in another process

我有一个 unity activity,它在我的应用程序之外的另一个进程中启动:

  <activity
        android:name=".UnityActivity"
        android:process=":UnityKillsMe"/>

我用 this question 加密保存了我的 SharedPreferences(以防万一这影响了我的问题,我不知道)。

现在,如果我想在 process=":UnityKillsMe" 中编辑 sharedPreference,则无法在 mainProcess 中访问这些编辑,它只需要旧版本的 SharedPreferences。直到我杀死 mainProcess 并再次启动该应用程序。如果我不杀死 mainProcess,并编辑 SharedPreferences,而它们已在 process=":UnityKillsMe" 中编辑,编辑将被覆盖并丢失。

如何在主进程中刷新SharedPreferences

Android 中 SharedPreferences 的当前实现不是进程安全的。

来自docs

Note: currently this class does not support use across multiple processes. This will be added later.

问题是您真的在您的应用程序中需要多个进程吗?

如果你真的这样做,我建议你看看Tray,或者考虑一些其他形式的持久存储,比如数据库。

也查看