android 中使用 AsyncTask

在Android 中有五秒的 ANR 限制
(ANR Application Not Responding的縮寫,簡單說,執行一件事情不能超過5秒,否則系統會跳出是否要停止app的訊息)

所以會執行較長時間的事情不能放在主線程中,
必需使用thread讓它在背景執行

在這裡介紹 AsyncTask
可以很簡單的使用,也提供了執行的前中後三個callback函式
在callback中可以改變界面或做其他的事情

以下是code

private class TestTask extends AsyncTask<Integer, Integer, Long> {
     protected Long doInBackground(Integer... input) {
         ..
         ..
     }

     protected void onProgressUpdate(Integer... progress) {
         ..
     }

     protected void onPostExecute(Long result) {
         ..
     }
 }
三種參數說明分別為
  1. Params,啟動任務執行的輸入參數
  2. Progress,後台任務執行的百分比
  3. Result,後台計算的結果類型

 執行時,

new TestTask().execute(0);
 若無輸入參數,可使用

private class Task extends AsyncTask<Void, Void, Void> { ... }

沒有留言:

不再限制您的多媒體創作:使用NDI快速傳輸、處理和編輯高品質的視訊和音訊。

NDI(Network Device Interface)是一種基於IP網絡的視訊和音訊傳輸協議,它可以讓您在同一網絡上的不同設備之間傳輸高品質的視訊和音訊。使用NDI,您可以將視訊和音訊直接傳輸到其他設備上,而不需要使用任何額外的硬體。 以下是使用NDI的步驟: 下載並安裝ND...