Chợ24h

Tiêu đề: Xử lý đa tiến trình bằng AsyncTask trong lập trình android [In trang]

Thành viên: thamkk9489    Thời gian: 3/6/2016 15:49:06     Tiêu đề: Xử lý đa tiến trình bằng AsyncTask trong lập trình android

Trong bài tập này Tui muốn trình bày một kỹ thuật mới đó là cách xử lý bằng AsyncTask. Nó hơi hơi phức tạp 1 xí , nhưng cũng không có khó khăn gì … Sự tình là bạn hãy làm đi làm lại Hai ba lần để hiểu thấu triệt về kỹ thuật này. Khi đã hiểu rồi thì bạn không thèm dùng Handler class nữa mà nên dùng luôn AsyncTask. Đặc biệt khi xử lý đa tiến trình nhưng mà muốn thẩm tra Cuối cùng trả về của tiến trình thì ta phải dùng AsyncTask.
Tui sẽ trình bày đại khái về lý thuyết của AsyncTask trước khi vào những giá dụ cụ thể trong bài hoc android
Bạn xem hình chụp 1 sau ( bạn nhìn vào các đường mũi tên trỏ các parameter ):



và hình số 2 sau như ( nhìn vào các đường chỉ parameter ):

– Trong bài học lập trình android Tui sẽ giải thích kỹ về Sự tình này:
Trong AsyncTask  có 3 đối số là các 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 diện lúc tiến trình thực thi , biến này sẽ được truyền vào hàm onProgressUpdate.
Result: Là biến dùng để lưu trữ Cuối cùng trả về sau khi tiến trình thực hiện xong.
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 Void.
bình thường trong 1 AsyncTask sẽ chứa 4 hàm , đó là :
onPreExecute( ) : Tự động được gọi hàng đầu khi tiến trình được kích hoạt.
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( ).
Xem thêm tài liệu >>> học lập trình android ở đâu tốt nhất
onProgressUpdate ( ): Dùng để cập nhật giao diện lúc runtime
onPostExecute( ): Sau khi tiến trình chấm dứt thì hàm này sẽ tự động sảy ra. Ta có thể lấy được Cuối cùng trả về sau khi thực hiện tiến trình chấm dứt ở đây.
Trong 4 hàm trên thì hàm doInBackground( ) buộc phải tồn tại , còn các hàm khác có thể khuyết , nhưng theo Tui các bạn nên sử dụng bĩ bàng 4 hàm đã nêu.
Đối với AsyncTask thì ta cần tạo một lớp kế thừa từ AsyncTask , sau đó từ MainActivity ta gọi hàm execute( ) của tiến trình này là OK.  






  © Copyright 2011-2013 iSoftco®, All rights reserved
Văn phòng công ty: P.16/706, Tòa nhà Thành Công, 57 Láng Hạ, phường Thành Công, quận Ba Đình, Hà Nội
Tel: (84-4) 37 875018;(84-4) 3555 8604 | Fax: (84-4) 37 875017 | E-Mail: cho24h@isoftco.com