赞
踩
从切换白天和黑夜模式说起
一个场景是页面有倒计时功能,并实时显示时钟和倒计时剩余分钟数提醒
此时切换白天和黑夜模式导致页面生命周期重走,数据全部重置,问题出现
实际测试发现切换白天/黑夜模式,切换系统语言均会导致生命周期重走。
那么有哪些场景会导致页面生命周期重走?
<activity android:name="" android:configChanges="orientation|screenSize"></activity>
<activity android:name="" android:configChanges="uiMode"></activity>
<activity android:name="" android:configChanges="locale|layoutDirection|keyboard"></activity>
@Override
protected void onSaveInstanceState(@NonNull Bundle outState) {
super.onSaveInstanceState(outState);
Logger.i(TAG, "onSaveInstanceState outState... ");
}
@Override
protected void onRestoreInstanceState(@NonNull Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
Logger.i(TAG, "onRestoreInstanceState... ");
}
@Override public void onConfigurationChanged(@NonNull Configuration newConfig) { super.onConfigurationChanged(newConfig); Logger.i(TAG, "onConfigurationChanged... "); int currentNightMode = newConfig.uiMode & Configuration.UI_MODE_NIGHT_MASK; switch (currentNightMode) { case Configuration.UI_MODE_NIGHT_NO: // Night mode is not active, we're using the light theme break; case Configuration.UI_MODE_NIGHT_YES: // Night mode is active, we're using dark theme break; } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。