我的Activity堆栈顺序是:MainActivity、SettingActivity、ThemeSettingActivity。 ThemeSettingActivity 是顶级活动。
当我使用AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM)并通过系统设置切换主题时,只有堆栈中的顶部Activity收到生命周期回调,而MainActivity和SettingActivity不会收到任何回调。
但是,当我在代码中使用 AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO) 或 AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES) 切换主题时,如果我的应用程序位于前台,则所有活动(包括顶级活动、MainActivity 和 SettingActivity)都会收到生命周期回调,这些回调在顶级 Activity 的生命周期回调之后执行。我的三个Activity的生命周期回调顺序如下:
请帮帮我~!
我希望生命周期回调顺序正确,最后调用 ThemeSettingActivity 的 onResumed 方法。
我的三个Activity的生命周期回调顺序如下:
主题设置活动::onActivityPaused
主题设置活动::onActivityStopped
ThemeSettingActivity::onActivitySaveInstanceState
主题设置活动::onActivityDestroyed
主题设置活动::onActivityCreated
主题设置活动::onActivityStarted
主题设置活动::onActivityResumed
设置活动::onActivityDestroyed
设置活动::onActivityCreated
设置活动::onActivityStarted
设置活动::onActivityResumed
设置活动::onActivityPaused
设置活动::onActivityStopped
设置活动::onActivitySaveInstanceState
MainActivity::onActivityDestroyed
MainActivity::onActivityCreated
MainActivity::onActivityStarted
MainActivity::onActivityResumed
MainActivity::onActivityPaused
MainActivity::onActivityStopped
MainActivity::onActivitySaveInstanceState