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

為了賬號安全,請及時綁定郵箱和手機立即綁定

如果要在第一個加載圖片的例子中取消線程,應該怎么做呢?

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

正在回答

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);
}


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

0 回復 有任何疑惑可以回復我~
#1

Bingo_ang 提問者

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

Bingo_ang 提問者

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

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

0 回復 有任何疑惑可以回復我~
#1

Bingo_ang 提問者

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

FINE_Android 回復 Bingo_ang 提問者

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


0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
Android必學-AsyncTask基礎
  • 參與學習       40900    人
  • 解答問題       111    個

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

進入課程

如果要在第一個加載圖片的例子中取消線程,應該怎么做呢?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號