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