我已经使用AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_XXX)
方法实现了DayNight主题。
但是,我在测试时注意到,即使在SetTheme()
或{中没有调用onCreate()
时,在设置中手动更改时钟也会导致主题在返回后台应用程序后发生更改。 {1}}。
当用户使用该应用程序(即输入大量数据)时,当白天变成夜晚时,发生了什么?会重新开始活动吗?我还应该测试什么以证明新的自动模式?
SettingRepository:
onResume()
SettingsActivity:
public void setThemeMode()
{
String mode = mSharedPreferences.getString(Constants.PREF_KEY_THEME_MODE, "Day") ;
switch (mode) {
case "Day":
AppCompatDelegate
.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);
break;
case "Night":
AppCompatDelegate
.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);
break;
case "Auto":
AppCompatDelegate
.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_AUTO);
break;
}
}