Android 应在应用程序范围内应用的共享首选项

Android 应在应用程序范围内应用的共享首选项,android,sharedpreferences,Android,Sharedpreferences,我目前正在开发一个android应用程序,我希望在应用程序范围内应用特定的偏好/设置 此外,应用于该首选项/设置的任何更改也应立即在应用程序范围内反映出来 为了存储应用程序设置,我使用SharedReferences 我在阅读Google文档时发现了SharedReferences.OnSharedPreferenceChangeListener接口,它允许我们在某个首选项/设置发生更改时执行特定的操作 我现在是否应该通过在onResume()方法中调用RegisterOnSharedRefer

我目前正在开发一个android应用程序,我希望在应用程序范围内应用特定的偏好/设置

此外,应用于该首选项/设置的任何更改也应立即在应用程序范围内反映出来

为了存储应用程序设置,我使用SharedReferences

我在阅读Google文档时发现了SharedReferences.OnSharedPreferenceChangeListener接口,它允许我们在某个首选项/设置发生更改时执行特定的操作


我现在是否应该通过在onResume()方法中调用RegisterOnSharedReferenceChangeListener()将所有活动注册为onSharedPreferenceChangeListener(),以便在系统范围内启用对特定首选项/设置的更改?

SharedReferences似乎是一个合适的选项。我不知道为什么有必要将应用程序中的所有活动注册为侦听器?我们不知道你的代码的结构。但例如,如果您有一个MainActivity和一个PreferenceActivity,用户可以在其中更改首选项,那么当用户从PreferenceActivity更改首选项时,这些可能是堆栈上唯一可以出现的活动。我有一个MainActivity,可以从其中启动PreferenceActivity。在这个首选项活动中,我有一个名为“扩展屏幕超时”的首选项,可以选中或取消选中。现在,将首选项从未选中更改为选中后,我想将WindowManager.LayoutParams.FLAG\u KEEP\u SCREEN\u设置为打开。因此,我将在我的主要活动中倾听应用于该偏好的任何更改。。。我假设我不需要注册任何其他侦听器来更改该首选项,并且该首选项在应用程序的生命周期内应用于整个应用程序。对吗?发布一篇文章,以便社区可以看到正在讨论的代码,这可能是一个好主意。但是,每个新创建的活动在创建时都可以读取prefrence值。对于更改首选项时位于后堆栈上的MainActivity,您可以使用SharedReferences侦听器,可能是封装在LiveData中的。但也许最简单的事情就是在活动恢复时读取首选项值。此外,“FLAG_KEEP_SCREEN_ON”通常是最好避免的,因为它在电池方面非常昂贵,并且不是普通应用程序中的典型选项。它最常与游戏一起使用。当您添加代码时,最好解释一下为什么要这样做。Views.SharedReferences似乎是一个合适的选项。我不知道为什么有必要将应用程序中的所有活动注册为侦听器?我们不知道你的代码的结构。但例如,如果您有一个MainActivity和一个PreferenceActivity,用户可以在其中更改首选项,那么当用户从PreferenceActivity更改首选项时,这些可能是堆栈上唯一可以出现的活动。我有一个MainActivity,可以从其中启动PreferenceActivity。在这个首选项活动中,我有一个名为“扩展屏幕超时”的首选项,可以选中或取消选中。现在,将首选项从未选中更改为选中后,我想将WindowManager.LayoutParams.FLAG\u KEEP\u SCREEN\u设置为打开。因此,我将在我的主要活动中倾听应用于该偏好的任何更改。。。我假设我不需要注册任何其他侦听器来更改该首选项,并且该首选项在应用程序的生命周期内应用于整个应用程序。对吗?发布一篇文章,以便社区可以看到正在讨论的代码,这可能是一个好主意。但是,每个新创建的活动在创建时都可以读取prefrence值。对于更改首选项时位于后堆栈上的MainActivity,您可以使用SharedReferences侦听器,可能是封装在LiveData中的。但也许最简单的事情就是在活动恢复时读取首选项值。此外,“FLAG_KEEP_SCREEN_ON”通常是最好避免的,因为它在电池方面非常昂贵,并且不是普通应用程序中的典型选项。它最常与游戏一起使用。当您添加代码时,最好解释一下为什么要这样做。当做