当我在 PreferenceScreen 中切换夜间模式时,我之前的屏幕不会触发 onRestart

问题描述

所以我的 SettingsActivity 带有 PreferenceScreen,因此我可以选择我的主题/字体设置以及夜间模式切换。

我有我的主题加载函数,我在每个活动的 onCreate 开始时调用它。 因为在我们更改设置之前可能会创建一个活动,所以我在 onRestart 中放置了一个 recreate() 以便在重新创建活动时我的函数会 loadTheme()。

问题是,在每次更改设置时,当我从 MainActivity 移动到 SettingsActivity 并更改首选项设置时,onStop() 被调用,在我从 SettingActivity 返回到 MainActivity 后,onRestart() 被调用为应该是。

我的问题是,如果我切换夜间模式选项,我更改的任何其他选项都不会立即保留 MainActivity 因为出于某种原因,即使在离开该活动时我的 onStop() 被调用,当我返回它时,onRestart() 没有被调用,我不知道为什么。

通常的生命周期说,如果活动停止,它应该在返回时调用 onRestart。 我不知道为什么切换我的夜间模式会改变它。 如果我转到另一个活动然后再回到那个活动,它会像往常一样触发 onRestart,它不仅在更改夜间模式后立即触发。

由于某种原因,这只发生在 API 27 及更低版本上。

有人知道这是什么原因吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)