-
將網(wǎng)絡(luò)輸入流解析成Bitmap對(duì)象。查看全部
-
AsyncTask三個(gè)傳入?yún)?shù)的類型查看全部
-
從網(wǎng)絡(luò)獲取圖片等耗時(shí)操作。查看全部
-
AsyncTask的方法的調(diào)用順序。查看全部
-
獲取進(jìn)度,更新進(jìn)度條。查看全部
-
AsyncTask的子類的重寫方法。查看全部
-
如果要在子線程中更新UI,可以使用Activity提供的一個(gè)方法。查看全部
-
只有主線程才能更新UI。但是Android是個(gè)多線程的操作系統(tǒng)。查看全部
-
刪掉那些屬性的快捷鍵是什么?。?查看全部
-
AsyncTask中只有doInBackground方法運(yùn)行在其他線程,其他方法都運(yùn)行在主線程,所以只有在其他三個(gè)方法中才能進(jìn)行UI的更新查看全部
-
AsyncTask默認(rèn)情況下會(huì)等待前一個(gè)線程執(zhí)行完畢后再執(zhí)行下一個(gè)線程,要取消該機(jī)制,可以讓AsyncTask和Activity的生命周期保持一致 protected void onPause(){ super.onPause(); if(mTask != null && mTask.getStatus() == AsyncTask.Status.RUNNING){ //只是發(fā)送了一個(gè)取消請(qǐng)求,將AsyncTask標(biāo)記為cancel狀態(tài),但未真正取消線程的執(zhí)行 //實(shí)際上JAVA語(yǔ)音沒辦法粗暴地直接停止一個(gè)正在運(yùn)行的線程 mTask.cancel(true); } } 所以需要在doInBackground方法和onProgressUpdate方法中增加isCancelled()方法進(jìn)行判斷,標(biāo)記為cancel的,則跳出循環(huán),盡快結(jié)束當(dāng)前線程的剩余操作,開始下一個(gè)線程查看全部
-
模擬進(jìn)度更新 for(int i=0;i<100;i++){ publishProgress(i); try{ Thread.sleep(300); } catch(InterruptedException e){ e.printStackTrace(); } } onProgressUpdate(Integer...values){ super.onProgressUpdate(calues); //獲取進(jìn)度更新值 mProgressBar.setProgress(values[0]); }查看全部
-
與UI線程通信 在onPreExecute()方法中 mProgressBar.setVisibility(View.VISIBLE);//顯示進(jìn)度條 在onPostExectute(Bitmap bitmap)方法中,參數(shù)是doInBackground()方法返回的參數(shù) mProgressBar.setVisibility(View.GONE);//將進(jìn)度條隱藏 mImageView.setImageBitmap(bitmap);//將圖片設(shè)置為解析出來的網(wǎng)絡(luò)圖片 然后在onCreate方法中 new MyAsyncTask().execute(URL);//開啟AsyncTask的異步線程操作,設(shè)置傳遞進(jìn)去的參數(shù)查看全部
-
doInBackground方法傳入的是一個(gè)可變長(zhǎng)數(shù)組,在execute方法中可以傳遞不止一個(gè)參數(shù),存入params數(shù)組中 String url = params[0];//本例中只傳入一個(gè)地址 Bitmap bitmap = null; URLConnection connection;//定義網(wǎng)絡(luò)連接對(duì)象 InputStream is;//用于獲取數(shù)據(jù)的輸入流 connection = new URL(url).openConnection();//獲取網(wǎng)絡(luò)連接對(duì)象,需要被try_catch is = connection.getInputStream();//獲取輸入流 BufferedInputStream bis = new BufferedInputStream(is); bitmap = BitmapFactory.decodeStream(bis);//將輸入流解析成bitmap is.close();//關(guān)閉輸入流 bis.close(); ruturn bitmap;//將bitmap作為返回值返回給后面調(diào)用的方法查看全部
-
網(wǎng)絡(luò)操作作為不穩(wěn)定的廢時(shí)操作,從android 4.0開始就被嚴(yán)禁放入主線程中 通常采用在異步線程處理→下載圖像 在UI線程→設(shè)置圖像 ProgressBar XML屬性 visibility="gone"可設(shè)置為默認(rèn)狀態(tài)下為隱藏查看全部
舉報(bào)
0/150
提交
取消