-
AsyncTask查看全部
-
AsyncTask子類回調方法查看全部
-
AsyncTask子類可以實現的方法查看全部
-
AsyncTask查看全部
-
AsyncTask查看全部
-
1查看全部
-
構建AsyncTask子類的參數 AsyncTask<Params,Progress,Result>是一個抽象類,通常用于被繼承,繼承AsyncTask需要指定如下三個泛型參數: Params:啟動任務時輸入參數的類型。 Progress:后臺任務執(zhí)行中返回進度值的類型。 Result:后臺執(zhí)行任務完成后返回結果的類型查看全部
-
AsyncTask的作用:一,可以更新UI.二,可以封裝,簡化異步操作查看全部
-
“AsyncTask”使用總結 1. 自定義一個類(MyAsyncTask)繼承自AsyncTask類,需要給AsyncTask傳入三個泛型,三個分別代表。 1.1 Params 執(zhí)行線程時(asyncTask.execute(params))傳入的參數類型。 1.2 Progress 更新進度時(publishProgress(prograss)) 傳入的參數類型。 1.3 Result doInbackground(線程)執(zhí)行結束后的返回值,傳給onPostExecute(result) 的參數類型。 2.實現抽象方法。和一些其他的方法。主要為4個 2.1 onPreExecute 在線程執(zhí)行之前執(zhí)行(UI線程執(zhí)行) 2.2 doInBackground 線程寫在該方法中(這個方法中的內容是真正在線程中執(zhí)行的,而不是在主線程中執(zhí)行的,所以不能操作UI) 2.3 onPostExecute 線程執(zhí)行之后執(zhí)行。(這個方法是線程之后執(zhí)行的,由主線程執(zhí)行,用于操作UI) 2.4 onProgressUpdate 當使用publishProgress方法時,會調用該方法。操作UI來更新進度。 3.實例化AsyncTask,調用asyncTask.exeucte(參數)。來執(zhí)行線程查看全部
-
“AsyncTask”線程取消。 1.Activity開啟的線程并不是和Activity綁定的。當Activity結束掉之后,并不會結束其開啟的線程。 2.當前Activity開啟的線程,需要等之前線程運行結束后才能開始運行。 3.可以使用cancel(true)//方法,設置線程狀態(tài)為取消(但是這個只是設置狀態(tài),并不是真正的將線程停止) 4.可以在doInbackground方法中,判斷線程的狀態(tài),如果線程的狀態(tài)為取消。就停止該線程。(使用該方法,將Activity和線程綁定)查看全部
-
“AsyncTask”中,onProgressUpdate()的應用。 作用:更新異步任務的進度。(比如,在加載圖片未完成之前,顯示一個進度條,來給用戶觀看。) 實例:模擬更新進度條 1.自定義類繼承AsnycTask類,將第二個泛型參數設置為Integer型。 2.在doInBackground方法中,調用publishUpdate,傳入一個Integer數值類型進去。作為當前進度。 protected Bitmap doInBackground(String... params) { for(int i=0;i<100;i++) { try { Thread.sleep(100); publishProgress(i); } catch (InterruptedException e) { e.printStackTrace(); } } } 3. 系統會自動調用onProgressUpdate(Integer... values),并將publishProgress傳入的值傳到這個參數里,使用values[]數組,即可提取出傳入的值。 progressBar.setProgress(values[0]);//查看全部
-
使用“AsyncTask”類“異步加載圖片” 1. 在Activity中自定義“內部類”AsynckTask(因為要訪問Activity獲取到的資源) 1.1 三個類型分別為,String(用來傳URL),Void(暫時不考慮進度條),Bitmap(用來返回圖片) 2.實現必要的幾個方法 3.在doInBackground方法中,執(zhí)行異步的從網絡獲取圖片任務 protected Bitmap doInBackground(String... params) { String urlStr = params[0]; //將傳遞過來的url字符串提取出來。 URLConnection urlConnection = null; InputStream inputStream = null; Bitmap bitmap = null; try { urlConnection = new URL(urlStr).openConnection();//獲取Url連接。 inputStream = urlConnection.getInputStream();//從鏈接中獲取圖片數據流 bitmap = BitmapFactory.decodeStream(inputStream);//將圖片數據流轉化為Bitmap對象 } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { try { inputStream.close(); } catch (IOException e) { e.printStackTrace(); } } return bitmap; } 4.在onPostExeucte(Bitmap result)方法中更新UI imageView.setVisibility(View.VISIBLE); imageView.setImageBitmap(result);查看全部
-
“AsyncTask”使用總結 1. 自定義一個類(MyAsyncTask)繼承自AsyncTask類,需要給AsyncTask傳入三個泛型,三個分別代表。 1.1 Params 執(zhí)行線程時(asyncTask.execute(params))傳入的參數類型。 1.2 Progress 更新進度時(publishProgress(prograss)) 傳入的參數類型。 1.3 Result doInbackground(線程)執(zhí)行結束后的返回值,傳給onPostExecute(result) 的參數類型。 2.實現抽象方法。和一些其他的方法。主要為4個 2.1 onPreExecute 在線程執(zhí)行之前執(zhí)行(UI線程執(zhí)行) 2.2 doInBackground 線程寫在該方法中(這個方法中的內容是真正在線程中執(zhí)行的,而不是在主線程中執(zhí)行的,所以不能操作UI) 2.3 onPostExecute 線程執(zhí)行之后執(zhí)行。(這個方法是線程之后執(zhí)行的,由主線程執(zhí)行,用于操作UI) 2.4 onProgressUpdate 當使用publishProgress方法時,會調用該方法。操作UI來更新進度。 3.實例化AsyncTask,調用asyncTask.exeucte(參數)。來執(zhí)行線程查看全部
-
構建AsyncTask子類的回調方法查看全部
-
異步任務-AsyncTask 前瞻查看全部
舉報
0/150
提交
取消