ảnh minh họa - Đào tạo Android
Một thành phần Content Provider cung cấp dữ liệu từ một ứng dụng tới các áp dụng khác theo đề nghị. Những yêu cầu này được xử lý bởi các phương thức của lớp ContentResolver. Một Content Provider có thể dùng các cách khác nhau để lưu giữ dữ liệu và dữ liệu có thể được lưu giữ trong một cơ sở dữ liệu, một file, hoặc có thể phê duyệt một mạng..
CONTENTPROVIDER
Đôi khi, việc chia sẽ dữ liệu qua các ứng dụng là thực sự cần thiết, khi đó Content Provider trở thành rất bổ ích.
Content Provider giúp bạn tập hợp nội dung trong một vị trí và có nhiều các áp dụng khác nhau có thể truy cập nó khi cần thiết. Một Content Provider vận hành khá giống một cơ sở dữ liệu, nơi mà bạn có thể tróc nã nó, sửa đổi nội dung, cũng như thêm hoặc xóa nội dung bởi sử dụng các phương thức insert(), update(), delete() và query(). Trong hầu hết cảnh huống, dữ liệu này được lưu trữ trong một SQlite database.
Một Content Provider được khai triển như là một lớp con của lớp ContentProvider và phải khai triển một tập APIs chuẩn để cho phép các ứng dụng thực hiện các transaction.
public class My Application extends ContentProvider
Content URI trong Android
Để tầm nã một Content Provider, bạn xác định chuỗi truy dạng một URI có định dạng sau:
:////
Bảng sau giải thích chi tiết các phần của URI: −Phầnbiểu đạt
prefixxoành xoạch được thiết lập là content://
authorityXác định tên của Content Provider, thí dụ contacts, browser ... Đối với Content Provider bên thứ ba, nó có thể là tên đầy đủ, ví nhưcom.tutorialspoint.statusprovider
data_typeChỉ kiểu dữ liệu mà Provider cụ thể cung cấp. thí dụ, nếu bạn đang lấy quờ quạng contact từ Content Provider có tên là Contacts, thì dữ liệu sẽ là people và URI sẽ như thế này content://contacts/people
idXác định bản ghi cụ thể được yêu cầu. Ví dụ, nếu bạn đang tìm số số liên tưởng thứ 5 trong Coctacts thì URI sẽ như thế nàycontent://contacts/people/5.
Tạo Content Provider trong Android
Để tạo riêng cho mình một Content Provider, bạn theo 5 bước sau:
trước nhất, bạn cần tạo một lớp Content Provider mà kế thừa từ lớp cơ sởContentProviderbaseclass.
Thứ hai, bạn cần định nghĩa địa chỉ URI của Content Provider, sẽ được sử dụng để truy cập nội dung đó.
Tiếp theo, bạn sẽ cần tạo Database cho riêng bạn để giữ nội dung này. Thường thì, Android sử dụng SQLite Database và framework cấp thiết để ghi đè phương thức onCreate() sẻ sử dụng phương thức SQLite Open Helper để tạo và mở Database của Provider này. Khi áp dụng của bạn chạy, phương thức onCreate() được gọi trên mỗi luồng vận dụng chính.
Kế tiếp, bạn sẽ phải triển khai các truy vấn Content Provider để thực hiện các hoạt động cơ sở dữ liệu cụ thể.
chung cục, đăng ký Content Provider của bạn trong activity file bởi sử dụng thẻ .
Sau đây là danh sách bạn cần ghi đè trong lớp Content Provider:
CONTENTPROVIDER
onCreate() Phương thức này được gọi khi Provider được bắt đầu.
query() Phương thức này nhận một đề nghị từ người dùng. Kết quả được trả về dưới dạng một đối tượng Cursor.
insert()Phương thức này chèn một bản ghi mới vào trong Content Provider.
delete() Phương thức này xóa một bản ghi đang tồn tại từ Content Provider.
update() Phương thức này cập nhật một bản ghi đang tồn tại trong Content Provider.
getType() Phương thức này trả về kiểu MIME của dữ liệu tại URI đã cho.
Ví dụ
thí dụ sau giảng giải cách bạn tạo cho riêng mình một ContentProvider. Bạn theo các bước rưa rứa như khi tạo tỉ dụ Hello World.−
Bước mô tả
1Bạn sử dụng Android StudioIDE để tạo một vận dụng Android có tên My Application dưới một package com.example.My Application, with blank Activity.
2Sửa đổi MainActivity.java để thêm hai phương thức mới onClickAddName() vàonClickRetrieveStudents().
3Tạo StudentsProvider.java mới dưới package com.example.My Application để định nghĩa Provider của bạn và các phương thức được gắn kết
4Đăng ký Content Provider trong AndroidManifest.xml file của bạn bởi dùng thẻ
5Sửa đổi nội dung mặc định củares/layout/activity_main.xml để bao một GUI để thêm các bản ghi về student
6Không cần thiết sửa đổi string.xml file, Android Studio sẽ chú ý nó
7Chạy ứng dụng để chạy Android Emulator và rà soát kết quả các thay đổi đã thực hành trong áp dụng
Sau đây là nội dung của src/com.example.My Application/MainActivity.java. đã được sửa đổi. File này có thể bao các phương thức cơ bản. Chúng ta đã thêm hai phương thức onClickAddName() và onClickRetrieveStudents() để xử lý tương tác người dùng với áp dụng.
Một khi bạn đã nhập một số bản ghi vào Database, lúc này, giả sử bạn muốn đề nghị ContentProvider cung cấp cho chúng ta các bản ghi đó. Bạn chỉ cần nhấn nút Retrieve Students, sẽ lấy và hiển thị cả thảy bản ghi (từng bản ghi một) theo trình khai triển của phương thức query() .
Bạn có thể viết các Activity với các hoạt động cập nhật và xóa bằng cách cung cấp các hàm trong MainActivity.java file và sau đó sửa đổi giao diện UI để có các nút cho các hoạt động update và delete này theo cách tương tự chúng ta đã làm với các hoạt động thêm và đọc.
Theo cách này, bạn có thể dùng ContentProvider đang tồn tại là Address Book hoặc bạn có thể sử dụng khái niệm Content Provider để phát triển một vận dụng hướng cơ sở dữ liệu (Database Oriented) đẹp, ở đó bạn có thể thực hiện thảy các hoạt động trên cơ sở dữ liệu như read, write, update, và delete như đã giảng giải trong Ví dụ trên.
No comments:
Post a Comment