大部分的APP都有夜間模式這個(gè)功能躏哩。最近遇到一個(gè)bug是在一臺(tái)nexus 6p上亭畜,我們的APP啟動(dòng)時(shí)部分頁(yè)面就顯示為夜間模式哥力,但是客戶端內(nèi)的夜間模式開關(guān)并未開啟倦沧。
從android資源文件夾命名規(guī)則可以看到唇撬,android 8以上,如果命名了night屬性文件夾展融,那么app啟動(dòng)時(shí)就會(huì)根據(jù)當(dāng)前系統(tǒng)UiMode進(jìn)行自動(dòng)設(shè)置窖认。本次bug的原因就是該設(shè)備系統(tǒng)的UiMode值為MODE_NIGHT_YES(表示夜間模式),而app里又有color-night的屬性文件夾告希。
注:UiMode可以通過(guò)UIModeManager.setNightMode進(jìn)行設(shè)置扑浸。但是在api23以下,
void setNightMode (int mode)
只有當(dāng)設(shè)備處于汽車或桌面模式時(shí)才能使用燕偶,在api23后可以在任何模式下使用喝噪。