Android P使用androidx 1.0.0(minSdkVersion 17)运行。从我MainActivity打开我的PreferenceActivity。在那里,我更改了UI主题,还重新创建了活动以获取更改:
AppCompatDelegate.setDefaultNightMode(nightMode);
recreate();
Run Code Online (Sandbox Code Playgroud)
更新主题后,我返回MainActivity。在那里,主题已成功更新。然后,我重新打开PreferenceActivity并再次更改主题。
到目前为止,一切都很好!
最后,我MainActivity再次回到。会议的主题是不更新,如果你重复这些步骤也不会更新!
因此,重现步骤似乎是:
AppCompatDelegate.setDefaultNightMode(MODE_NIGHT_YES)和recreate()。主题已更新!AppCompatDelegate.setDefaultNightMode(MODE_NIGHT_NO)和recreate()。主题已更新!我打过电话recreate()从returing时PreferenceActivity而是产生另一个问题,当库并在主题的变化作出反应:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (...) {
recreate();
} else {
super.onActivityResult(requestCode, resultCode, data);
} …Run Code Online (Sandbox Code Playgroud)