?Android6.0以上應(yīng)用在長(zhǎng)時(shí)間在后臺(tái),因?yàn)閮?nèi)存不足導(dǎo)致系統(tǒng)回收內(nèi)存哮兰,當(dāng)再次啟動(dòng)應(yīng)用出現(xiàn)Fragment重疊或者空白解決方案毛萌。
首先提供一個(gè)方法模擬內(nèi)存不足導(dǎo)致系統(tǒng)回收內(nèi)存的方案:
打開Android Studio -->Tools-->Android-->Android Device Monitor-->把你的應(yīng)用切換到后臺(tái)(home鍵)-->選擇你的應(yīng)用包名-->點(diǎn)擊紅色的stop按鈕-->再次進(jìn)入你的應(yīng)用,即可模擬出內(nèi)存被回收的情況喝滞。
下面給出的解決方案是:(摘錄)
方案1:在fragmentActivity里oncreate方法判斷savedInstanceState==null才生成新Fragment阁将,否則不做處理。
方案2:在fragmentActivity里重寫onSaveInstanceState方法右遭,但不做實(shí)現(xiàn)做盅,也就是將super.onSaveInstanceState(outState)注釋掉缤削。 這樣你Activity銷毀了你也不用保存我Fragment的狀態(tài)了。
方案3:if(savedInstanceState!=null){
FragmentManager manager = getSupportFragmentManager();
manager.popBackStackImmediate(null, 1);
}判斷savedInstanceState不等以null就彈出所有Fragment 全部重新加載吹榴。