Android - 初心者 - AsyncTask

Android - 初心者 - AsyncTask

當我們需要在Android 撈取Server的API資料必須在非Main Thread 或UI Thread進行,有兩種方法可以做,一種是Thread搭Handler,另一種就是AsyncTask

這裡要講的是AsyncTask

如下


    public class CallApiTask extends AsyncTask<Void, Void, Void> {
        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            //可以操作UI - 開始
        }

        @Override
        protected Void doInBackground(Void... voids) {
            //Call API
            return null;
        }

        @Override
        protected void onPostExecute(Void aVoid) {
            super.onPostExecute(aVoid);
            //可以操作UI - 結束
        }
    }

這樣就可以背景撈取資料,而不影響到畫面UI操作。等完成後,再變更UI資料。

再來就是創建執行如下

CallApiTask task = new CallApiTask ();
task.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);