Android AsyncTask將講解

來源:互聯網
上載者:User

標籤:android   style   blog   color   io   os   ar   sp   div   

原型:AsyncTask<Params, Progress, Result>

  • Params 表示傳入參數類型
  • Progress表示處理參數類型
  • Result表示傳回型別
 1 new AsyncTask<String, Void, String>() { 2  3             @Override 4             protected void onCancelled() { 5                 // TODO Auto-generated method stub 6                 super.onCancelled(); 7             } 8  9             @Override10             protected void onCancelled(String result) {11                 // TODO Auto-generated method stub12                 super.onCancelled(result);13             }14 15             @Override16             protected void onPostExecute(String result) {17                 super.onPostExecute(result);18                 text.setText(result);19             }20 21             @Override22             protected void onPreExecute() {23                 Toast.makeText(MainActivity.this, "開始讀取", Toast.LENGTH_SHORT).show();24                 super.onPreExecute();25             }26 27             @Override28             protected void onProgressUpdate(Void... values) {29                 // TODO Auto-generated method stub30                 super.onProgressUpdate(values);31             }32 33             @Override34             protected String doInBackground(String... params) {35                 URL url;36                 try {37                     url = new URL(params[0]);38                     URLConnection conn = url.openConnection();39                     InputStream is = conn.getInputStream();40                     InputStreamReader isr = new InputStreamReader(is);41                     BufferedReader br = new BufferedReader(isr);42                     String line;43                     StringBuilder builder = new StringBuilder();44                     while ((line = br.readLine()) != null) {45                         builder.append(line);46                     }47                     br.close();48                     is.close();49                     return builder.toString();50                 } catch (IOException e) {51                     e.printStackTrace();52                 }53                 return null;54             }55             56         }.execute(url);
  1. doInBackground(String... params) 參數跟AsyncTask 的第一個參數對應,幕後處理放在該方法中;
  2. onPostExecute(String result) 參數跟AsyncTask 的最後一個參數對應,後台線程執行完後回調,其中result 是 doInBackground的返回結果;
  3. onPreExecute() 線程執行之前調用;
  4. onCancelled() 取消時調用;
  5. onCancelled(String result) 取消時調用;
  6. onProgressUpdate(Void... values) 處理時回調

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.