AsyncTask - Retrofit - Volley

Thứ Sáu, 9 tháng 12, 2016 | Đăng: Nặc danh
AsyncTask - Retrofit - Volley
So sánh performance
I. AsyncTask
AsyncTask là gì?
AsyncTask là một lớp trừu tượng được cung cấp bởi Android, giúp chúng ta sử dụng các thread UI đúng. Lớp này cho phép chúng tôi thực hiện các hoạt động dài / nền và hiển thị kết quả của nó trên thread UI mà không cần phải thao tác đề.

Khi sử dụng AsyncTask?
Android thực hiện mô hình chủ đề duy nhất và bất cứ khi nào một ứng dụng Android được tung ra, một thread được tạo ra. Giả sử chúng ta đang làm mạng lưới hoạt động trên một nút bấm trong ứng dụng của chúng tôi. Mở nút bấm một yêu cầu sẽ được thực hiện cho các máy chủ và phản ứng sẽ được chờ đợi. Do mô hình chủ đề duy nhất của Android, cho đến khi thời gian đáp ứng được chờ đợi màn hình của chúng tôi là không đáp ứng. Vì vậy, chúng ta nên tránh thực hiện các hoạt động dài chạy trên thread UI. Điều này bao gồm tập tin và truy cập mạng.

Để khắc phục điều này chúng ta có thể tạo chủ đề mới và thực hiện các phương pháp chạy để thực hiện cuộc gọi mạng này, do đó, giao diện người dùng vẫn đáp ứng.          

Nhưng kể từ khi Android theo mô hình chủ đề duy nhất và Android UI bộ công cụ không phải là thread an toàn, vì vậy nếu có một nhu cầu để thực hiện một số thay đổi về giao diện người dùng dựa trên các kết quả của các hoạt động biểu diễn, sau đó cách tiếp cận này có thể dẫn đến một số vấn đề.

Vì vậy, các khuôn khổ Android đã đưa ra một mô hình rất tốt được bao bọc vào AsyncTask.

Lưu ý: AsyncTask lý tưởng nên được sử dụng cho các hoạt động mà phải mất vài giây. Một số nhiệm vụ giữ cho thread chạy trong thời gian dài như vậy trong trường hợp đó nó được khuyến khích để sử dụng gói java.util.concurrent như Executor, ThreadPoolExecutor và FutureTask.

AsyncTask có bốn bước

  1. doInBackground: Mã thực hiện hoạt động dài chạy đi trong phương pháp này. Khi phương thức onClick được thực thi trên nhấp nút, nó gọi phương thức mà chấp nhận các thông số thực hiện và tự động gọi phương thức doInBackground với các thông số thông qua.
  2. onPostExecute: Phương thức này được gọi là phương thức sau doInBackground hoàn thành xử lý. Kết quả từ doInBackground được truyền cho phương thức này.
  3. onPreExecute: Phương thức này được gọi là trước khi phương thức doInBackground được gọi.
  4. onProgressUpdate: Phương thức này được gọi bằng cách gọi publishProgress bất cứ lúc nào từ doInBackground gọi phương thức này.

Các nhiệm vụ có thể được hủy bỏ bằng cách gọi hủy bỏ (boolean) phương thức. Điều này sẽ gây ra các cuộc gọi tiếp theo để isCancelled () để trở về đúng.

Sau khi gọi phương pháp này, onCancelled (Object) phương thức được gọi là thay vì onPostExecute () sau khi doInBackground () trả về.

II. Retrofit
Đa số ứng dụng Android hiện nay đều đi kèm với một backend server nên một thư viện giúp hỗ trợ giao tiếp với server sẽ rất hữu ích. Retrofit là một trong những thư viện nổi tiếng trong việc hỗ trợ Netwoking.

Một số lý do mà mình dùng Retrofit cho Networking:

  • Performance tốt.
  • Dễ sử dụng.
  • Dùng chung được với RxAndroid.


III. Volley

Volley là một thư viện mạng( library network) được Google giới thiệu năm 2013 để quản lý các request Network và lưu trữ  những response trên các ứng dụng Android mà không cần các Developer viết nhiều code như trước. Các tools bên trong Volley cho phép cùng một lúc thục hiện nhiều request trên các thread (luồng xử lý dữ liệu) khác nhau với các mức độ ưu tiên (priority) khác nhau. Tất cả request được thực hiện và lưu trữ trong bộ nhớ cache giúp cho việc reload lại dữ liệu nhanh hơn. Nó đặc biện hữu dụng với những dữ liệu như JSON, Image, String,… Nhưng lại không phải là ý tưởng tốt cho việc sử dụng với các dữ liệu lớn như music hay movies.

Những class request có trong thư viện Volley này bao gồm : jsonObjectRequest, jsonArrayRequest, StringRequest, ImageLoader kết với các constructor đi kèm như : POST, GET, DELETE, PUT, COPY,…

Mail Facebook Google twitter
Từ khóa: AsyncTask - Retrofit - Volley

AsyncTask - Retrofit - Volley

Bài viết AsyncTask - Retrofit - Volley
AsyncTask - Retrofit - Volley AsyncTask - Retrofit - Volley
910 1

Bài viết AsyncTask - Retrofit - Volley

0 nhận xét