Học liệu

AsyncTask trong Android Studio

  • 18/11/2020
  • Học liệu

-          AsyncTask là đối tượng cho phép bạn thực hiện hành động xử lý phía background (Thread ngầm) và trả kết quả lên UI thread (Thread chính) mà không cần phải xử lý Thread hoặcHandler.

-          Khi ứng dụng của bạn thực hiện một tác vụ dài, chiếm một khoảng thời gian nhất định. Ví dụ như khi click nút Login, ứng dụng phải gửi request lên server để xử lý và trả kết quả về. Nếu làm theo kiểu bình thường thì ứng dụng của bạn sẽ có cảm giác bị treo và chậm, gây ảnh hưởng đến trải nghiệm người dùng. Trong tình huống này, để giải quyết vấn đề chúng ta có thể sử dụngAsyncTask.

-          Trong AsyncTask<Params, Progress, Result> có 3 đối số là các GenericType:

o   Params: Là  giá trị (biến) được truyền vào  khi gọi  thực thi  tiến  trình và  nó    sẽ  được truyền vàodoInBackground.

o   Progress: Là giá trị (biến) dùng để update giao diện diện lúc tiến trình thực thi, biến này sẽ được truyền vào hàmonProgressUpdate.

o   Result: Là biến dùng để lưu trữ kết quả trả về sau khi tiến trình thực hiệnxong.

  •    Những đối số nào không sử dụng trong quá trình thực thi tiến trình thì ta thay bằng kiểuVoid.

-          Thông thường trong một AsyncTask sẽ chứa 4 hàm, đó là:

o   onPreExecute(): Tự động được gọi đầu tiên khi tiến trình được kíchhoạt.

o   doInBackground(): Được thực thi trong quá trình tiến trình chạy nền, thông qua hàm  này  để  ta  gọi  hàm onProgressUpdate  để  cập  nhật   giao   diện   (gọi lệnh publishProgress).    Ta không thể cập nhật giao diện trong hàm doInBackground().

o   onProgressUpdate(): Dùng để cập nhật giao diện lúc runtime.

onPostExecute(): Sau khi tiến trình kết thúc thì hàm này sẽ tự động xảy ra. Ta có thể lấy được kết quả trả về sau khi thực hiện tiến trình kết thúc ở đây

undefined

 

undefined

 

Các tin khác