【问题标题】:Getting Context of All Activities in Project Programmatically以编程方式获取项目中所有活动的上下文
【发布时间】:2023-04-09 00:31:01
【问题描述】:

我正在尝试创建一个函数来全局更改由 SharedPreference 表示的设置,以后可以为每个活动手动设置。在设置中,我想为用户提供一次更改每个活动的设置的能力。有没有办法在静态函数中获取活动上下文列表?

【问题讨论】:

  • 你为什么不使用偏好活动呢?
  • 在这种情况下,我不使用偏好活动,因为该设置对使用它的每个活动都有独特的偏好。我需要一种以编程方式一次性更改它们的方法。
  • 所有活动都在同一个应用程序中吗?如果是,只需将每个活动设为单例,并创建一个像 void refresh() 这样的静态方法,并将所有活动的刷新方法放在一个方法中;每次,您只需调用该方法即可刷新所有活动

标签: android android-activity sharedpreferences android-context


【解决方案1】:

您可以将它们全部保存在全局首选项中,只需将活动类名称附加到首选项键(如“activity_color_global”、“活动颜色视图”...),或为每个活动使用不同的首选项文件名。
默认情况下,将所有键的值设置为 0 或 null,这意味着使用全局首选项(附加全局名称的首选项),然后用户可以根据需要单独更改每个首选项。
要动态获取所有包含的活动列表,您可以使用PackageManager 类中的getPackageInfo 函数。

【讨论】:

  • 感谢您的回答,但这不是回答我的问题。我考虑使用这种方法,但鉴于我的项目中的活动数量在开发过程中经常变化,因此依赖所有可能活动上下文的动态列表比手动定义的一组字符串要好得多。
  • 您可以使用 PackageManager 中的 getPackageInfo 动态获取包含的活动列表。
  • 谢谢!这正是我一直在寻找的。如果您更改对此的主要答案,我会接受。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-30
  • 1970-01-01
  • 2020-11-11
  • 2015-05-28
相关资源
最近更新 更多