0

後我中的init 片段的的onCreate()裝載機這樣的片段:裝載機和onLoadFinished()方向改變

if (null == savedInstanceState) { 
    Bundle args = new Bundle(); 
    getLoaderManager().initLoader(0, args, this); 
} 

好,它的工作原理和數據都在正常onLoadFinished()返回。但是如果我在裝載程序尚未加載數據時改變方向,那麼onLoadFinished()永遠不會被調用。 請有人向我解釋爲什麼?謝謝

+0

爲什麼不在'onActivityCreated'中不用'if'呢? ... initLoader應該在方向改變後返回緩存的結果 – Selvin 2015-04-03 09:42:29

+0

我會嘗試'onActivityCreated',但我認爲它也應該在'onCreate()'上工作。 – GPack 2015-04-03 09:47:18

+0

@Selvin好吧,我試着沒有'if'語句:它工作,即使在onCreate()。我認爲,原因是_Loader_需要每次重新初始化以返回緩存數據。 您的評論基本正確,將其作爲回覆發佈,我會接受。謝謝。 – GPack 2015-04-03 10:31:26

回答

0

您需要刪除if (null == savedInstanceState)檢查 - 通過添加該檢查,當重新創建活動並且只有啓動的加載程序將返回結果時,加載程序纔會移至「已啓動」狀態。