嗨我想保留片段仍然存在,即使它不再顯示。因爲我有一些AsyncTasks去那裏。Android片段setRetainInstance(true)在後臺不工作
首先我增加了起點Fragment
FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
fragmentTransaction.add(R.id.fragmentMenu, menuFragment);
fragmentTransaction.commit();
後來我應該活着的片段取代menuFragment
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(R.id.fragmentMenu, btFragment).addToBackStack(null).commit();
最後我重寫onBackPressed()
方法使用popBackStack()
@Override
public void onBackPressed() {
if(getFragmentManager().getBackStackEntryCount() != 0){
getFragmentManager().popBackStackImmediate();
}else{
super.onBackPressed();
}
}
在我的btFragment
裏面,即使我彈出另一個片段,我在onCreate()
方法中設置了setRetainInstance(true)
,它應該保持活着。 但是一旦我彈出了後臺,它就會被破壞。
我做錯了什麼? THX
爲什麼downvote? –
它最好在活動中運行異步任務和加載器任務,而不是在片段中運行。最好不要依賴片段來保存任何數據。將它保留在活動中,並讓片段在片段恢復時從活動中獲取。 – Thilek