Bài giảng Lập trình Android - Bài 8: XML, JSON, Async Task

34 44 0
Bài giảng Lập trình Android - Bài 8: XML, JSON, Async Task

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Nội dung của bài giảng trình bày khái niệm về Thread và Handler, các phương thức quan trọng trong Thread, HandleMessage, xây dựng tương tác cho Thread và Handler, khái niệm về Async Task, thuộc tính của Async Task và khởi tạo AsyncTask.

Thread Handler AsynTask XML JSON     Khái niệm Các phương thức quan trọng Thread HandleMessage Xây dựng tương tác cho Thread Handler  Thread:  Thread (tiểu trình) đơn vị nhỏ tiến trình định thời hệ điều hành bao hàm tiến trình thực thi máy tính Mỗi thread phương thức, đối số biến cục riêng thread  Mỗi máy ảo Android chạy có thread khởi động cịn vài thread khác dùng để quản lý tiến trình chạy  Thread:  Mỗi ứng dụng khởi chạy hoạt động tiến trình (Main Thread)  Có hai loại: ▪ Main Thread (UI Thread): thread ứng dụng dùng kiểm sốt thực cơng việc liên quan nhiều đến giao diện ▪ Worker Thread: thread phụ dùng xử lý tác vụ : kết nối internet, chuyển đổi XML, download…v v Ứng dụng tự khởi động thêm thread phụ vào mục đích cụ thể  Worker thread khơng thể can thiệp vào thread  Các thread máy ảo tác động qua lại đơng hóa cách sử dụng đối tượng chia sẻ monitor liên quan đến đối tượng  Khởi tạo Thread: ▪ Thread t = new Thread(new Runnable() { @Override public void run() { // Do Something } });  Một số phương thức quan trọng: ▪ start() ▪ Khởi động thread ▪ run() ▪ Sau thread khởi động phương thức start() dùng run() để thực dòng lệnh thread ▪ wait() ▪ Làm cho thread phải chờ đợi thread khác gọi phương thức notify() ▪ sleep(long millisec) ▪ Bắt buộc Thread phải ngưng hoạt động khoảng thời gian thiết lập ▪ Notify() ▪ Dùng để gọi lại đối tượng thread chờ đợi  Handler:  Handler đối tượng xuyên tiến trình phép gửi, xử lí thơng điệp đối tương Runable Mỗi Handler liên kết với thread hàng đợi thông điệp thread  Bạn tạo thread riêng bạn giao tiếp ngược với main thread ứng dụng thông qua Handler  Phương thức quan trọng: ▪ sendMessage(): gửi tin nhắn lên Handler  Khởi tạo Handler:  Tạo đối tượng Handler ghi đè lại phương thức handleMessage đế bắt xử lý thông điệp liên lạc Handler handler = new Handler(new Handler.Callback() { @Override public boolean handleMessage(Message msg) { //Kiểm tra message if(msg != null){ //Xử lý message nhận từ Thread } return true; } });  Thread gửi tin nhắn lên Handler Handler đóng vai trị kiểm tra tin nhắn làm việc tương ứng Thread t = new Thread(new Runnable() { @Override public void run() { Message mss = new Message(); mss.arg1 = 1; handler.sendMessage(mss); } }); t.start();  XML Pull Parser: cho phép trình bày thành phần tập tin theo dạng chuỗi thẻ (tag) đánh dấu (event), để làm việc với XML Pull Parser cần khảo sát thuộc tính đối tượng sau: XmlPullParserFactory: khởi tạo đối tượng XmlPullParser từ tập tin tài liệu XML XmlPullParer: đối tượng kiểm soát việc duyệt truy xuất liệu START_DOCUMENT: điểm đánh dấu bắt đầu tập tin XML END_DOCUMENT: điểm đánh dấu kết thúc tập tin XML START_TAG: điểm đánh dấu bắt đầu cặp thẻ XML END_TAG: điểm đánh dấu kết thúc cặp thẻ XML  Ví dụ: Ví dụ xử lý XML với DOM: truy xuất liệu thẻ thẻ đoạn XML  DOM Parser: giao diện lập trình ứng dụng (API) có dạng cấu trúc liệu, đối tượng cần khởi tạo sử dụng: ▪ Element: đại diện cho thẻ XML ▪ NodeList: đại diện cho thẻ có chứa nhiều thẻ ▪ Document: tập tin tài liệu khởi tạo từ liệu XML thông qua DocumentBuilder ▪ DocumentBuilder: đối tượng hỗ trợ chuyển đổi liệu XML thành cấu trúc tập tin XML cho việc đọc ghi liệu ▪ DocumentBuilderFactory: khởi tạo đối tượng DocumentBuilder  Ví dụ xử lý XML với DOM: truy xuất liệu thẻ đoạn XML trên: 24  JSON (JavaScript Object Notation) định nghĩa theo ngôn ngữ JavaScript, tiêu chuẩn ECMA-262 năm 1999, cấu trúc định dạng văn đơn giản với trường liệu lồng vào JSON sử dụng để trao đổi liệu thành phần hệ thống tương thích với hầu hết ngôn ngữ C, C++, C#, Java, JavaScript, Perl, Python   Tuỳ thuộc vào liệu cần trao đổi, JSON có nhiều dạng khác nhau, nhiên tống hợp hai dạng sau: Một đối tượng Object chứa cặp giá trị string/value không cần thứ tự, bao cặp “{}”, giá trị bên định dạng “string:value” chia cách dấu “,” Value chuỗi, số, true- false, null Có thể xem mơ tả ví dụ sau:  Một đối tượng mảng có bao gồm nhều phần tử có thứ tự Các phần từ bao cặp “[]” chia cách dấu “,” Mỗi phần tử giá trị đơn lẻ như: số, chuỗi, true-false, null object khác, chí mảng  Việc thực đọc ghi liệu JSON Android thơng qua nhiều thư viện khác GSON, Json.Smart, Jackson… nhiên tài liệu khảo sát lớp JSON gói org.json tích hợp sẵn Android SDK Trong gói bao gồm bốn lớp chính: JSONObject: đối tượng quản lý JSON dạng Object JSONArray: đối tượng quản lý JSON dạng tập hợn Object Array JSONStringer: đối tượng chuyển liệu JSON thành dạng chuỗi JSONTokener: chuyển đổi đối tượng JSON (chuẩn RFC-4627) mã hoá chuỗi thành đối tượng tương ứng   Để thực ghi liệu JSON, cần xác định rõ cấu trúc liệu cần lưu trữ Nếu liệu cần ghi đối tượng, liệu ghi vào JSONObject; liệu mảng, liệu ghi vào JSONArray Ví dụ 1: ghi liệu có cấu trúc đơn giản dạng JSONObject: Để thực ghi liệu JSON, cần xác định rõ cấu trúc liệu cần lưu trữ Nếu liệu cần ghi đối tượng, liệu ghi vào JSONObject; liệu mảng, liệu ghi vào JSONArray  Ví dụ 1: ghi liệu có cấu trúc đơn giản dạng JSONObject:  Để thực ghi liệu JSON, cần xác định rõ cấu trúc liệu cần lưu trữ Nếu liệu cần ghi đối tượng, liệu ghi vào JSONObject; liệu mảng, liệu ghi vào JSONArray  Ví dụ 1: ghi liệu có cấu trúc đơn giản dạng JSONObject:     Slide giảng Lập trình Android, T3H http://www.utilities-online.info/xmltojson http://www.freeformatter.com/xml-to-jsonconverter.html 33 34 ... AsyncTask:  Có thể tạo AsyncTask thơng qua kế thừa lớp AsyncTask  Ví dụ tạo lớp AsyncTask thực thi xử lý doInBackground private class DownloadFilesTask extends AsyncTask... liệu ▪ onPostExcute ▪ Tiến trình cập nhật liệu UI  AsyncTask:  Các qui tắc quan trọng xử lý AsyncTask: ▪ AsyncTask phải tạo, gọi thực thi tiến trình UI ▪ Tự động hoá từ phiên JellyBean ▪ Không... trúc đơn giản dạng JSONObject:     Slide giảng Lập trình Android, T3H http://www.utilities-online.info/xmltojson http://www.freeformatter.com/xml-to-jsonconverter.html 33 34

Ngày đăng: 09/05/2021, 18:01

Tài liệu cùng người dùng

Tài liệu liên quan