Android AsyncTask使用注意簡介及注意事項

來源:互聯網
上載者:User

標籤:

      說起Android的AsyncTask,則必須要說到Android中的單執行緒模式,在Android中只允許UI線程來操作介面,WorkingThread是不允許操作UI的。同時耗時的操作則應盡量放在WorkingThread中來操作,防止阻礙UI線程更新 介面,導致 ANR(Application Not Responding) 異常。這樣可以保證UI操作的穩定和流暢,避免造成多線程操作致使UI混亂。

     我們可以使用線程池來操作,Android給我們提供了Handler 機制,其實也給我們提供了一個AsyncTask組件。使用線程池來操作的時候,我們需要管理線程,同時需要用handler來發送訊息,但是在處理過程中代碼過多,顯得過於複雜。

    AsyncTask 參數構建

AsyncTask是一個抽象類別,裡面封裝有三個泛型參數。通常情況下,我們需要整合這個類來實現功能。

  • Params 啟動任務執行的輸入參數,比如HTTP請求的URL。
  • Progress 背景工作執行的百分比。
  • Result 後台執行任務最終返回的結果,比如String。

   AsyncTask子類回調方法

  • doInBackground(Params…): 背景工作,必須重寫的方法。
  • onPostExecute(Result)  相當於Handler 處理UI的方式,當doInBackground 完成之後,系統會自動調用。

以下方法不是必須複寫的

  • onProgressUpdate(Progress…)   更新任務的執行進度出發的方法。publishProgress()
  • onPreExecute()        執行後台耗時任務前調用!
  • onCancelled()          使用者調用取消時,要做的操作

Android AsyncTask使用注意簡介及注意事項

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.