第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

如果要在第一個(gè)加載圖片的例子中取消線程,應(yīng)該怎么做呢?

如果要在第一個(gè)加載圖片的例子中取消線程,應(yīng)該怎么做呢?怎么試都沒成功。。。

正在回答

3 回答

@Override
protected void onPause() {
? ?super.onPause();
? ?if (task!=null&&task.getStatus()==AsyncTask.Status.RUNNING){
? ? ? ?task.cancel(true);
? ?}

}


@Override
protected void onPreExecute() {
? ?if (isCancelled()){
? ? ? ?return;
? ?}
? ?super.onPreExecute();
? ?progressBar.setVisibility(View.VISIBLE);
}


在預(yù)處理的時(shí)候判斷一下AsyncTask狀態(tài)就可以了

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

Bingo_ang 提問者

好的,謝謝!但是我在doInBcakground里面加也實(shí)現(xiàn)了,你看看有問題嗎?就是注釋有一串“!”那一行
2016-06-07 回復(fù) 有任何疑惑可以回復(fù)我~
#2

Bingo_ang 提問者

非常感謝!
2016-06-08 回復(fù) 有任何疑惑可以回復(fù)我~

你的isCancelled()方法又不是在一個(gè)循環(huán)里面或者回調(diào)監(jiān)聽可以隨時(shí)影響將流轉(zhuǎn)換為bitmap,所以肯定不行,也就是說你取消按鈕還沒按,已經(jīng)走過了你的isCancelled()判斷方法了

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

Bingo_ang 提問者

但是在真機(jī)中跑確實(shí)能達(dá)到效果。不過我覺得按邏輯來還是放在預(yù)處理中判斷比較合理。
2016-06-08 回復(fù) 有任何疑惑可以回復(fù)我~
#2

FINE_Android 回復(fù) Bingo_ang 提問者

嗯,一般大的文件才會(huì)明顯的感覺到進(jìn)度的走動(dòng),然后在更新的方法中進(jìn)行一般判斷就可以了,知道怎么處理就行
2016-06-08 回復(fù) 有任何疑惑可以回復(fù)我~
@Override
??protected?Bitmap?doInBackground(String...?params)?{
???//?獲取傳遞進(jìn)來的參數(shù):?因?yàn)橹粋鬟M(jìn)一張圖片,所以只用取出數(shù)組params的第0位內(nèi)容
???String?url?=?params[0];
???Bitmap?bitmap?=?null;
???URLConnection?connection;//?定義網(wǎng)絡(luò)連接對(duì)象
???InputStream?is;//?用于獲取數(shù)據(jù)的輸入流對(duì)象
???//?將URL解析成bitmap對(duì)象(此為耗時(shí)操作,所以在doInBackground中)
???try?{
????//?將url傳進(jìn)去,獲取網(wǎng)絡(luò)連接對(duì)象
????connection?=?new?URL(url).openConnection();
????//?獲取輸入流接對(duì)象
????is?=?connection.getInputStream();
????//?將輸入流is放到緩存器中
????BufferedInputStream?bis?=?new?BufferedInputStream(is);
????Thread.sleep(9000);//?人為阻礙加載
????//?一旦監(jiān)測(cè)到cancel,則立即返回
????if?(isCancelled())?{
?????Log.v("ang",?"殺死");
?????return?null;//??。。。。。。。。。。。。。。。。。。?????}
????Log.v("ang",?"沒有跳過");
????//?將bis傳入,通過decodeStream把輸入流解析成bitmap
????bitmap?=?BitmapFactory.decodeStream(bis);
????//?關(guān)閉輸入流
????is.close();
????bis.close();
???}?catch?(MalformedURLException?e)?{
????e.printStackTrace();
???}?catch?(IOException?e)?{
????e.printStackTrace();
???}
???return?bitmap;//?返回的是解析得到的bitmap對(duì)象
??}


0 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消
Android必學(xué)-AsyncTask基礎(chǔ)
  • 參與學(xué)習(xí)       40899    人
  • 解答問題       111    個(gè)

了解Android中AsyncTask的使用方法,掌握異步線程的使用

進(jìn)入課程

如果要在第一個(gè)加載圖片的例子中取消線程,應(yīng)該怎么做呢?

我要回答 關(guān)注問題
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)