??Android3.0后提供了Loader機(jī)制,來處理數(shù)據(jù)加載的實現(xiàn),你可以通過繼承AsyncTaskLoader或是CursorLoader來進(jìn)行相應(yīng)的數(shù)據(jù)加載操作。
??使用Loader加載主要涉及到4個類:
- Loader
定義了一個加載實現(xiàn),比如啟動、暫停、取消等方法。 - LoaderInfo
指的是一個具體的加載過程,它持有一個加載實現(xiàn)Loader - LoaderManager
管理著多個加載過程LoaderInfo。 - LoaderManager.LoaderCallbacks
提供與外部交互的回調(diào)方法。提供具體的加載類Loader和結(jié)果的處理。
??Activity或Fragment持有LoaderManager對象,通過調(diào)用方法:
initLoader(int id, Bundle args, LoaderManager.LoaderCallbacks<D> callback)
會創(chuàng)建一個LoaderInfo對象,保存在SparseArray集合中,并把callback賦值給LoaderInfo。
??當(dāng)Activity或fragment調(diào)用onStart方法是,會調(diào)用LoaderManager的doStart方法,會遍歷所有的LoaderInfo執(zhí)行其start方法,這時通過callback的onCreateLoader方法獲取具體的加載類Loader,執(zhí)行Loader的加載操作。
??LoaderInfo本身是實現(xiàn)Loader.OnLoadCompleteListener接口的,當(dāng)Loader執(zhí)行完后通過OnLoadCompleteListener通知LoaderInfo,LoaderInfo再調(diào)用callback的onLoadComplete傳遞給外部處理結(jié)果數(shù)據(jù)。

參考
http://www.jcodecraeer.com/a/anzhuokaifa/developer/2014/0325/1602.html