重囗另类BBWSeⅹHD,av狼论坛,精品一卡2卡三卡4卡乱码理论,体育生gv老师浪小辉3p警察

Android中AsyncTask使用 -電腦資料

電腦資料 時間:2019-01-01 我要投稿
【www.ipr-jzsc.com - 電腦資料】

    一、AsyncTask的作用:

    代替Thread+Handler的組合,使創建異步任務變得簡單,

Android中AsyncTask使用

    AsyncTask執行后臺操作,并在用戶界面上發布結果,而不必處理線程。

    二、AsyncTask的定義:

    public abstract class AsyncTask extends Object

    AsyncTask必須子類可以使用。子類將覆蓋至少一個方法(doInBackground執行異步任務),通常會覆蓋一次(onPostExecute顯示結果,更新UI)

    AsyncTask三種類型如下:

    》Params,參數的類型發送到任務執行時。

    》Progress,在后臺計算過程中公布的進度單元類型。

    》Result,計算結果的類型。

    不是所有類型都是異步任務所使用的。要標記為未使用的類型,設置該類型Void:

    三、AsyncTask的方法:

    1、onPreExecute()

    在任務開始后立即調用,在UI線程執行。這一步通常用于設置任務,例如在用戶界面中初始化進度條。

    2、doInBackground(Params...)

    后臺線程調用onPreExecute()完成后立即執行。這一步后臺進程執行,可能會花費很長時間。

    3、onProgressUpdate(Progress...)

    調用publishProgress,在UI線程上執行,

電腦資料

Android中AsyncTask使用》(http://www.ipr-jzsc.com)。這種方法是用來顯示用戶進度界面,后臺進程仍在執行。例如,它可用于顯示一個進度條或在文本中顯示日志。

    4、onPostExecute(Result)

    后臺進程處理完后,在UI線程上執行。后臺進程的結果被傳遞到這一步作為參數。

    常用的寫法如下:

   

class MyTask extends AsyncTask<String, Integer, String> {    @Override    protected String doInBackground(String... params) {        //執行異步任務        int n = 10;        //調用publishProgress公布進度,最后onProgressUpdate方法將被執行        publishProgress(n);          Thread.sleep(500);            return null;    }    @Override    protected void onPostExecute(String result) {        //更新UI,顯示結果    }    @Override    protected void onProgressUpdate(Integer... values) {        //更新進度信息    }

    new MyTask().execute();//執行任務

    三、AsyncTask的規則:

    1、任務實例必須在用戶界面線程中創建。

    2、execute(Params... params)方法必須在UI線程中調用。

    3、不要手動調用onPreExecute,doInBackground,onProgressUpdate,onPostExecute這些方法

    4、一個任務實例只能執行一次,如果執行第二次將會拋出異常

最新文章
主站蜘蛛池模板: 阿拉善盟| 南召县| 固阳县| 益阳市| 广州市| 买车| 普兰店市| 疏勒县| 湘西| 武夷山市| 左权县| 合山市| 墨脱县| 汉沽区| 土默特左旗| 平远县| 邵阳县| 莱阳市| 若羌县| 大化| 永靖县| 红桥区| 临西县| 安吉县| 江城| 鹤庆县| 宜良县| 三亚市| 兴义市| 竹山县| 霍林郭勒市| 南郑县| 大足县| 衢州市| 湾仔区| 普宁市| 新兴县| 肥乡县| 潮州市| 奎屯市| 双峰县|