我需要從2個來源在線獲取數據,並希望顯示每個進度,因爲我這樣做。一旦收集到數據,我可以填充一個列表視圖。Daisy-chain Android Loaders是不是一個好主意?
我目前的實現是MyActivity實現LoaderCallbacks這反過來又創造MyDataLoader(延伸AsyncTaskLoader類)的一個實例。在MyDataLoader的loadInBackground方法中,它從所有來源獲取數據並填充一個Sqlite數據庫。這個db可以在整個過程中使用。
的問題是,我不會給用戶的任何反饋,凡在這個過程中我們。
所以我想用菊花鏈方式使用getLoaderManager()。initLoader創建我的裝載器,然後逐個遍歷loadermanager中的裝載器。當每個加載器完成並返回到onLoadFinished時,我有機會設置progressDialog的文本來指示進度。
這是一個壞主意嗎?有更簡單更好的方法嗎?
悸動者總是一個方便的方法來做到這一點,但如果你事先知道你必須執行2次加載,顯示'0%'''50%'''100%'不是必須的餿主意。這就是說,我們沒有理由去載入資源順序 – Basic 2012-08-02 23:22:51
@alex,將每個裝載機調用onLoadFinished方法分別一旦他們完成或者是有一個單一的電話嗎?或者一旦所有裝載機完成後是否有另一種方法的最終調用? – CarllDev 2012-08-02 23:47:52
@CarllDev裝載機是彼此完全獨立的...'LoaderManager'調用'每一個加載完成其加載時間(注意,這'Loader'將作爲第一個參數的方法也被傳遞)onLoadFinished'。該'LoaderManager'連續起動/停止/復位/破壞'Activity'的裝載機在其整個生命週期,因此具有報告回來時,*所有*的裝載機裝載完畢不會作出任何意義的回調方法。 – 2012-08-02 23:59:44