Loader加載器的一些理解

??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ù)。

Paste_Image.png

參考

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容