Android線程通訊模型-AsyncTask類

來源:互聯網
上載者:User
  Android線程通訊模型-AsyncTask類                 1.非同步任務類:是對Android中線程通訊模型的封裝。            2.三個泛型                Params:非同步任務輸入參數類型。execute和doInBackground方法的參數類型。                Progress:進度提示類型。publishProgress和onProgressUpdate方法的參數類型。                Result:是非同步任務執行的結果類型。            3.主要方法                AsyncTask<Params,Progress,Result>  execute(Params... params)                void publishProgress(Progress... values)                void onPreExecute()                void  onPostExecute(Result result)                void  onProgressUpdate(Progress... values)            4.抽象方法                Result doInBackgroud(Params... params)            5.特點                1)每個非同步任務對象只能執行一次                2)同時建立的非同步任務對象最好不要超過10個,否則會降低程式執行的效能。        簡化代碼,示範其主要原理如下:     public abstract class MyAsyncTask<Params, Progress, Result> {private Handler handler;public MyAsyncTask() {handler = new Handler() {@Overridepublic void handleMessage(Message msg) {switch (msg.what) {case 0:// 進度提示訊息updateProgress((Progress[]) msg.obj);break;case 1:// 非同步任務完成的訊息onPostExecute((Result) msg.obj);break;}}};} // 執行非同步任務public void execute(final Params... params) { onPreExecute();new Thread() {public void run() {Result result = doInBackground(params);Message msg = Message.obtain();msg.what = 1;msg.obj = result;handler.sendMessage(msg);};}.start();}//發布進度提示訊息public void publishProgress(Progress... values) {Message msg = Message.obtain();msg.what = 0;msg.obj = values;handler.sendMessage(msg);}//進度更新方法public  void updateProgress(Progress... values){};// 在開始非同步任務前 執行準備工作public  void onPreExecute(){};// 在背景工作執行緒中調用的 非同步任務處理方法public abstract Result doInBackground(Params... params);//當非同步任務執行結束後 進行介面更新的方法public void onPostExecute(Result result){};}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.