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

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

Android必學(xué)-AsyncTask基礎(chǔ)

難度中級(jí)
時(shí)長(zhǎng)49分
學(xué)習(xí)人數(shù)
綜合評(píng)分9.77
206人評(píng)價(jià) 查看評(píng)價(jià)
9.8 內(nèi)容實(shí)用
9.9 簡(jiǎn)潔易懂
9.6 邏輯清晰
  • AsyncTask<String,Void,Bitmap>三個(gè)參數(shù)分別為:url類型,進(jìn)度值類型,返回值類型。 這里的例子暫時(shí)不設(shè)置進(jìn)度值,url設(shè)置為String類型,又因?yàn)槲覀兗虞d的是一張Bitmap,所以返回的參數(shù)類型設(shè)置為 Bitmap。 1. doInBackground(String...params)傳進(jìn)來的是一個(gè)可變長(zhǎng)數(shù)組,也就是說,我們可以傳進(jìn)不止一個(gè)參數(shù)(通過execute()傳進(jìn)來),這些參數(shù)依次存在于這個(gè)數(shù)組中?,F(xiàn)在只有一個(gè)參數(shù),所以只要寫個(gè)params[0]取出對(duì)應(yīng)的URL即可。 2. 定義一個(gè)Bitmap,也就是我們所要獲取的Bitmap。 3. 定義一個(gè)訪問網(wǎng)絡(luò)的URLconnection,也就是一個(gè)網(wǎng)絡(luò)連接對(duì)象connection。 4. 定義一個(gè)InputStream,用于獲取數(shù)據(jù)的輸入流。 5. 初始化connection:connection = new URL(url).openConnection();這里需要自行導(dǎo)入jar包:import java.net.URL; 另外需要try-catch包圍。 6. 獲取輸入流:is = connection.getInputStream(); 7. 對(duì)輸入流進(jìn)行包裝:BufferedInputStream bis = new BufferedInputStream(is); 8. 通過decodeStream()將輸入流解析成 Bitmap:bitmap = BitmapFactory.decodeStream(bis); 9. 關(guān)閉輸入流、返回 bitmap。
    查看全部
  • 網(wǎng)絡(luò)操作作為不穩(wěn)定的廢時(shí)操作,從android 4.0開始就被嚴(yán)禁放入主線程中 通常采用在異步線程處理下載圖像 在UI線程設(shè)置圖像 ProgressBar XML屬性 visibility="gone"可設(shè)置為默認(rèn)狀態(tài)下為隱藏 VISIBLE:設(shè)置控件可見 INVISIBLE:設(shè)置控件不可見 GONE:設(shè)置控件隱藏 而INVISIBLE和GONE的主要區(qū)別是:當(dāng)控件visibility屬性為INVISIBLE時(shí),界面保留了view控件所占有的空間;而控件屬性為GONE時(shí),界面則不保留view控件所占有的空間。
    查看全部
  • 構(gòu)建AsyncTack子類的參數(shù) AsyncTask<Params,Progress,Result>是一個(gè)抽象類,通常用于被繼承,繼承AsyncTask需要指定如下三個(gè)泛型參數(shù): params:?jiǎn)?dòng)任務(wù)時(shí)輸入?yún)?shù)的類型。 progress:后臺(tái)任務(wù)執(zhí)行中,返回進(jìn)度值的類型。 Result:后臺(tái)執(zhí)行任務(wù)完成后,返回結(jié)果的類型。 ------------------------ 如何構(gòu)建AsyncTask子類的回調(diào)方法? 一個(gè)完整的AsyncTask通常需要指定如下幾個(gè)方法: 1. doInBackground:這是AsyncTask子類所必須要重寫的方法,異步執(zhí)行后臺(tái)線程將要完成的任務(wù)。我們所有的耗時(shí)操作都將在這個(gè)方法中進(jìn)行操作。 2. onPreExecute:執(zhí)行后臺(tái)耗時(shí)操作之前被調(diào)用,通常是用戶完成一些初始化操作。 3. onPostExecute:當(dāng)doInBackground()完成后,系統(tǒng)會(huì)自動(dòng)調(diào)用此方法,并將doInBackground()返回的值傳給該方法,也就是展示處理完成的結(jié)果。 4. onProgressUpdate:在doInBackground()方法中調(diào)用publishProgrsss()更新任務(wù)的執(zhí)行進(jìn)度后,就會(huì)觸發(fā)該方法(必須先調(diào)用publishProgrsss()),就可以知道當(dāng)前耗時(shí)操作的完成進(jìn)度。 ---------------------------------- 額外補(bǔ)充: 1. 注意這里的例子繼承的是 AsyncTask<Void,Void,Void>,需要帶上三個(gè)泛型,定義Void泛型要注意V是大寫。。。 2. 執(zhí)行順序:onPreExecute() --> doInBackground() --> onProgressUpdate() --> onPostExecute()。
    查看全部
  • 為什么需要使用異步任務(wù)? 我們知道,Android中只有UI線程,也就是主線程才能進(jìn)行對(duì)UI的更新操作,而其他線程是不能直接操作UI的.這樣的好處是保證了UI的穩(wěn)定性和準(zhǔn)確性,避免多個(gè)線程同時(shí)對(duì)UI進(jìn)行操作而造成UI的混亂.但Android是一個(gè)多線程的操作系統(tǒng),我們總不能把所有的任務(wù)都放在主線程中進(jìn)行實(shí)現(xiàn),比如網(wǎng)絡(luò)操作,文件讀取等耗時(shí)操作,如果全部放到主線程去執(zhí)行,就可能會(huì)造成后面任務(wù)的阻塞.Android會(huì)去檢測(cè)這種阻塞,當(dāng)阻塞時(shí)間太長(zhǎng)的時(shí)候,就會(huì)拋出Application Not Responsed(ANR)錯(cuò)誤.所以我們需要將這些耗時(shí)操作放在非主線程中去執(zhí)行.這樣既避免了Android的單線程模型,又避免了ANR. .AsyncTask為何而生? 提到異步任務(wù),我們能想到用線程,線程池去實(shí)現(xiàn).確實(shí),Android給我們提供了主線程與其他線程通訊的機(jī)制.但同時(shí),Android也給我們提供了一個(gè)封裝好的組件--AsyncTask.利用AsyncTask,我們可以很方便的實(shí)現(xiàn)異步任務(wù)處理.AsyncTask可以在子線程中更新UI,也封裝簡(jiǎn)化了異步操作.使用線程,線程池處理異步任務(wù)涉及到了線程的同步,管理等問題.而且當(dāng)線程結(jié)束的時(shí)候還需要使用Handler去通知主線程來更新UI.而AsyncTask封裝了這一切,使得我們可以很方便的在子線程中更新UI.
    查看全部
    1 采集 收起 來源:AsyncTask概述

    2017-05-24

  • AsyncTask默認(rèn)情況下會(huì)等待前一個(gè)線程執(zhí)行完畢后再執(zhí)行下一個(gè)線程,要取消該機(jī)制,可以讓AsyncTask和Activity的生命周期保持一致
    查看全部
  • doInbg
    查看全部
  • AsyncTask<Params,Progress,Result>是一個(gè)抽象類,通常用于被繼承,繼承AsyncTask需要指定如下三個(gè)泛型參數(shù): params:?jiǎn)?dòng)任務(wù)時(shí)輸入?yún)?shù)的類型。 progress:后臺(tái)任務(wù)執(zhí)行中,返回進(jìn)度值的類型。 Result:后臺(tái)執(zhí)行任務(wù)完成后,返回結(jié)果的類型。
    查看全部
  • 使用AsynTask 方法的調(diào)用順序 1 耗時(shí)任務(wù)開始前的初始化 2 耗時(shí)任務(wù)異步處理 3 更新進(jìn)度條,需要在doInBackground中調(diào)用publishProgress(); 4 返回處理后的結(jié)果
    查看全部
  • AsyncTask注意事項(xiàng)
    查看全部
    0 采集 收起 來源:總結(jié)

    2017-04-15

  • if(isCanceled()) break;
    查看全部
  • 主線程暫停時(shí)AsyncTask也應(yīng)該停止
    查看全部
  • 構(gòu)建AsyncTask子類的回調(diào)方法
    查看全部
  • 構(gòu)建AsyncTask子類的參數(shù)
    查看全部
  • 異步任務(wù)所需要實(shí)現(xiàn)的方法
    查看全部
  • AsyncTask<Params,Progress,Result> Params:啟動(dòng)任務(wù)時(shí)輸入?yún)?shù)的類型。 Progress:后臺(tái)任務(wù)執(zhí)行中返回進(jìn)度值的類型。 Result:后臺(tái)執(zhí)行任務(wù)完成后返回結(jié)果的類型。
    查看全部

舉報(bào)

0/150
提交
取消
課程須知
本課程是Android初級(jí)課程 1、掌握基本的Android應(yīng)用程序開發(fā)方法 2、掌握AsyncTask中個(gè)方法中參數(shù)的意義 3、掌握AsyncTask中4個(gè)常用的方法
老師告訴你能學(xué)到什么?
1、了解Android的單線程模型 2、 AsyncTask的基本構(gòu)成 3、 AsyncTask的回調(diào)方法 4、 AsyncTask實(shí)例

微信掃碼,參與3人拼團(tuán)

微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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

友情提示:

您好,此課程屬于遷移課程,您已購(gòu)買該課程,無需重復(fù)購(gòu)買,感謝您對(duì)慕課網(wǎng)的支持!