我有一個活動,它在創建時調用initLoader以加載活動將顯示的數據。通常情況下,這工作正常。我設置了斷點來查看所有事情發生的順序。首先我調用initLoader,然後得到OnCreateLoader回調,然後是OnLoadFinished回調,然後一切都很好。有時在調用initLoader之後不會獲得onCreateLoader回調
但是,我注意到如果我改變Android的方向,我沒有得到OnCreateLoader回調或OnLoadFinished回調,導致頁面上沒有數據顯示。我仍然在initLoader調用中獲得了斷點,所以我知道這種情況正在發生,但是我沒有收到錯誤,我找不到任何文檔解釋爲什麼在調用initLoader之後我不會得到回調。
有趣的是,如果我回到原來的方向,我會得到回調。
因此,要總結:
我開始活動在縱向方向
- 我打電話initLoader
- 我得到onCreateLoader和onLoadFinished回調
我則改爲橫向
- 我打電話initLoader
- 沒有onCreateLoader或onLoadFinished回調
我變回肖像
- 我打電話initLoader
- 我得到onCreateLoader和onLoadFinished回調
同樣,如果我以橫向模式開始活動,我會得到回調。那麼,如果我切換到肖像,我不會。然後,如果我切換回景觀,我再次獲得回調。
有沒有人有任何想法是怎麼回事?
這是怎麼了換貨工作。如果在已經加載其數據的加載器上調用init,它將通過onLoadFinished返回該數據。你應該看看http://developer.android.com/reference/android/app/LoaderManager.html#restartLoader(int,android.os.Bundle,android.app.LoaderManager.LoaderCallbacks)重新加載數據 –
Dori