Android中-Loader載入器
Loader載入器:
Android3.0(API11推出的),用來進行非同步資料的載入,內部使用AsyncTask實現,通常用在資料庫的載入,隨後V4中推出了相容的版本
核心
- LoaderManger
- LoaderManger.LoaderCallBacks
- Loader
Loader
- 載入器的基類
- AsyncTaskLoader是Loader的一個子類,內部使用AsyncTask處理耗時操作
- CursorLoader是AsyncTaskLoader的一個子類,主要用來載入ContentProvider中的資料
LoaderManger
- 載入器的管理者
- 主要負責Loader的回撥管理,一個Activity或者Fragment中只有一個LoaderManger,一個LoaderManger可以管理多個Loader
- LoaderManger在初始化的時候,通過id去確定Loader,如果Loader不存在,那麼將建立一個新的Loader,如果已經存在,將重新連線已經存在的Loader
LoaderManger.LoaderCallBacks
- 載入器載入狀態的回撥函式
- onCreatLoader當Loader不存在時,我們呼叫初始化Loader時,需要返回一個Loader物件
- onLoadFinished 當Loader執行完非同步任務,獲取到資料之後的一個回撥,將資料返回來
- onLoaderReset 當Loader被重置時的呼叫,我們需要在這個回撥中做資源的釋放
AsyncTaskLoader
- 需要重寫loadInBackground,這個方法在後臺執行緒執行,處理耗時操作
- 我們需要在onStartLoading方法中主動呼叫forceLoade()方法強制進行資料的載入
下面通過一個栗子來解釋
Finish的時候處理資料物件Cursor
這裡可以實現一個聯絡人的模糊查詢
在onLoadFinish的時候將Cursor物件的資料設定到Adapter上
adapter.swapCursor(data);在onLoaderReset的時候,將資料置空
adapter.swapCursor(null);
自定義的CustomLoader extends AsyncTaskLoader
相關文章
- webpack配置常用loader載入器Web
- Android中Loader及LoaderManager的使用(附原始碼下載)Android原始碼
- Android Loader 機制,讓你的資料載入更加輕鬆Android
- 用SQL*Loader載入外部資料SQL
- 惡意軟體開發——編寫第一個Loader載入器
- Android 非同步載入神器Loader全解析Android非同步
- Android 非同步載入神器 Loader 全解析Android非同步
- Android 中LayoutInflater(佈局載入器)系列博文說明Android
- Android讓Fragment載入到Activity中AndroidFragment
- 探索Android檢視載入器LayoutInflaterAndroid
- 使用bundle-loader非同步載入react-router非同步React
- webpack loader—自己寫一個按需載入外掛Web
- Android 中LayoutInflater(佈局載入器)原始碼篇之rInflate方法Android原始碼
- 關於java中的類載入器Java
- Android View中Background載入的時間分析AndroidView
- 02-使用BIOS中斷 顯示字元/讀取磁碟 【實現boot中載入loader的功能】iOS字元boot
- Android虛擬機器框架:類載入機制Android虛擬機框架
- JVM中的類載入器子系統JVM
- 【SQL*Loader】sqlldr匯入SQL
- 模組載入器
- Java常見知識點彙總(⑯)——類載入模型(class loader)Java模型
- 【原創】比較使用sql*loader的直接載入方式和傳統載入方式的效能差異SQL
- java專案中的classpath和類載入器Java
- 【Sass/SCSS】預載入器中的“軒轅劍”CSS
- 載入常量-從檔案中載入
- Java 類載入器以及載入機制Java
- Android在WebView中載入HTML並實現互動AndroidWebViewHTML
- Android Loader原始碼分析(二)Android原始碼
- JVM入門--類載入器JVM
- webpack 入門之 loader 案例Web
- 深入原始碼解析Android中Loader、AsyncTaskLoader、CursorLoader、LoaderManager原始碼Android
- 類載入器(JVM)JVM
- Webpack模組載入器Web
- 【實驗】【SQL*Loader】使用SQLLDR將資料載入到CLOB欄位SQL
- Android 9.0 Launcher Workspace載入Android
- [Android元件化]- SPI載入Android元件化
- Android 圖片載入框架Android框架
- Android WebView載入TTF字型AndroidWebView