Android非同步----重新認識Android(6)
Android執行緒使用規定:
1、子執行緒不能操作UI元件(UI元件的方法都是不同步的)(注意:如果子執行緒在UI執行緒初始化的時候就執行完成,那麼就不會引發異常)
2、Android4.0之後規定不能再UI執行緒中進行網路資料互動並且耗時操作應該在子執行緒中完成
AsyncTask非同步任務類:
1、抽象泛型類--
在使用的時候必須指明具體的型別AsyncTask<Params,Progress,Result>
泛型說明:
Params :第一個泛型,一般是請求的URL或String
Progress: 第二個,更新進度,常用型別是Integer
Result :第三個,下載執行緒執行完後返回的結果,常用Bitmap,byte[],String
使用步驟:
1、自定義非同步任務類並指明泛型
2、重寫方法
Result doInBackground(Params... params) 後臺執行的任務
onPostExecute(Result result) 任務完成,UI主執行緒執行
3、有選擇的重寫以下方法
onPreExecute() 後臺任務開始之前的準備工作,UI主執行緒執行
onProgressUpdate(Progress... values) 當前執行的進度,UI主執行緒執行
onCancelled(Result result) 取消任務時,任務已完成的情況
onCancelled() 取消任務,任務正在執行的情況
4、在UI執行緒中建立自定義非同步任務類物件,並execute執行
非同步任務方法說明:
1.onPreExecute() 執行在UI執行緒中在AsyncTask執行前執行的準備方法
2.doInBackground() 執行在工作執行緒中進行耗時操作的方法
引數的型別與AsyncTask泛型的第一個引數型別一致 可變引數
返回值與AsyncTask泛型的第三個引數型別一致 返回工作執行緒耗時操作的結果
publishProgress(progress);//通知主執行緒修改當前進度
3.onProgressUpdate() 執行在主執行緒中用來更新進度的方法
只要doInBackground()中呼叫了publishProgress(progress);就立即執行該方法
該方法的引數與AsyncTask中泛型的第二個引數型別一致 可變引數
4.onPostExecute() 執行在主執行緒中用來將耗時操作的結果顯示到ui介面中
引數是與AsyncTask的泛型的第三個引數型別一致
1、獲取JSON格式的字串顯示在TextView中
2、將對應的字串解析,將解析結果通過介面卡設定給Spinner
3、當前頁面增加一個按鈕用於跳轉到另外頁面(跳轉的時候要求取消非同步任務)
4、另外頁面非同步任務載入圖片











1、使用非同步任務載入圖片
2、使用非同步任務載入並解析JSON
3、使用非同步任務載入並解析XML資料












相關文章
- [Android]元件化-重新認識AndroidManifestAndroid元件化
- 重新認識React Native和Android的通訊原理React NativeAndroid
- Android - 認識ContextAndroidContext
- 重新認識受控和非受控元件元件
- Android-認識BitmapAndroid
- Android Studio的初次認識Android
- 6 歲!是時候重新認識下 Serverless 了Server
- 6歲!是時候重新認識下Serverless了Server
- 2018.03.12、Android知識點-Android篇Android
- android studio 重新關聯svnAndroid
- Android之重新簽名APKAndroidAPK
- Android SMSSDK非Gradle整合教程AndroidGradle
- 重新認識 React 生命週期React
- 重新認識了下Entity FrameworkFramework
- android非同步生成圖片Android非同步
- Android 知識點Android
- Android NDK初識Android
- OpenGL ES SDK for Android - 6Android
- 重新認識原型和原型鏈一原型
- 重新認識 async/await 語法糖AI
- 重新認識原型和原型鏈二原型
- 重新認識原型和原型鏈三原型
- 重新認識Docker Compose之Sidecar模式DockerIDE模式
- Android多媒體之認識聲音、錄音與播放(PCM)Android
- Android 螢幕重新整理機制Android
- Android非同步訊息機制Android非同步
- Android中非同步任務(AsyncTask)Android非同步
- 重新認識Java微服務架構-認證服務Java微服務架構
- Android知識點3Android
- Android基礎知識Android
- Android各版本對應Android API(知識累積)AndroidAPI
- 重新認識flex縮寫屬性—[flex]Flex
- Java 混淆那些事(一):重新認識 ProGuardJava
- Android recyclerview刪除item重新整理列表AndroidView
- Android RecyclerView 區域性重新整理原理AndroidView
- Android 突破螢幕重新整理的桎梏Android
- Python 非同步 IO系列:認識asyncioPython非同步
- Android修煉之檢測非SDK介面Android
- Android Q適配(非SDK介面管控)Android