Thứ Năm, 8 tháng 12, 2016

                AsyncTask ,volley ,Retrofit 

1,AsyncTask

*AsyncTask là gì và tại sao phải dùng AsyncTask

-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.Lớp này cho phép chúng ta thực hiện các hoạt động dài và hiển thị kết quả của nó trên thread UI mà không cần thao tác
-trong android đôi khi chúng ta thực hiện một số operation mà thời  gian từ lúc gửi request đến lúc nhận response có thể hơi lâu như network operation:download anh ,down phim...database query ...lấy thông tin danh sách ứng dụng trong hệ điều hành,gửi file bluetooh.Người ta gọi chúng là background operations.
-Main Thread(dùng để update giao diện) thì thực hiện công việc theo cơ chế hàng đợi FIFO,do đó nếu thực hiện background operation bằng main thread sẽ dẫn tới hiện tượng đơ treo màn hình do công việc sau muốn chạy phải đợi công việc trước được thực hiện xong.Do đó google làm ra AsyncTask để thực hiện background operation
*Cơ chế hoạt động của AsyncTask
Trong AsyncTask<Params,Progress,Result> có 3 đối số là Generic Type: 
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ào doInBackground
Progress:Là giá trị biến dùng để update giao diện lúc tiến trình thực thi biến này sẽ được truyền vào hàm onProgessUpdate
Result:là biến dùng để lưu trữ kết quả trả về sau khi tiến trình được thực thi xong
-những đối số nào không sử dụng trong quá trình thực thi thì ta thay bằng Void
*thông thường 1 AsyncTask có 4 hàm:
onPreExcute():tự động được gọi đầu tiên khi tiến trình được kick hoạt.
doInBackground:Được thực thi trong quá 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();
onProgressUpdate:dùng để cập nhật giao diện luc runtime.
onPostExecute():sau khi tiến trình kêt thúc hàm này tự động xảy ra.Ta có thể lấy được kết quả trả về tại đây.
-Trong 4 hàm trên thì hàm doInbackground() băt buộc phải tồn tại.còn các hàm khác có thể khuyêt.
-Đối với AsyncTask thì ta cần tạo ra 1 lớp kế thừa từ AsyncTask.sau đó từ mainactivity   ta goi hàm execute() để thực hiện. 

2,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 respon trên các ứng dụng android mà không cần các developer viết nhiều code như trước nữa.Các tools bên trong Volloy 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 mức độ ưu tiên khác nhau.Tất cả cá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 ...nhưng lại không pahir là một ý tưởng tôt cho việc sử dụng 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,String request,ImageLoader kết nối với các contructor đi kèm như POST,GET,PUT,COPY.
*

3,Retrofit

Retrofit là một rest Client cho android và java và được tạo bởi Square.Họ làm cho việc nhận và tải lên Json(hoặc dữ liệu khác ) một cách dễ dàng tới Webservice dựa trên mô hình REST.

Các gói trang bị thêm cho phép sử dụng các bộ chuyển đổi sau đây:
-Gson:com.squareup.retrofit:converter-gson
-Jackson:com.squareup.retrofit:converter-jackson
-Moshi:com.squareup.retrofit:converter-moshi 
-Protobuf:com.squareup.retrofit:converter-protobuf
-Wire:com.squareup.retrofit:converter-wire 
-Simple XML:com.squareup.retrofit:converter-simplexml
*Để làm việc với retrofit bạn cần triển khai 3 lớp cơ bản:
1Model class to map Json Data 
2 Interfaces để định nghĩa API cho Webservice
3 Retrofit.Buider lớp định ngĩa url Endpoint cho các hoạt động liên quan tới HTTP


4:Bai Tap Ve nha

file index.

file result

servlet dang nhap

servlet welcom




Không có nhận xét nào:

Đăng nhận xét