Content provider là gì

Content Provider cai quản truy vấn vào trong 1 kho tài liệu. Content Provider là thành phần của một vận dụng Android, nó hay cung ứng UI của chính mình để gia công câu hỏi cùng dữ liệu. Với Content Provider trong Android https://www.devpro.edu.vn/full-tai-lieu-tu-hoc-lap-trinh-android-tu-co-ban-nang-cao chúng ta sẽ đi tìm kiếm phát âm phần đa nội dung thiết yếu sau đây:

*

Content URIsCách Content Provider chuyển động.API chúng ta áp dụng để truy hỏi xuất tài liệu từ bỏ Content Provider. API chúng ta thực hiện nhằm ckém, cập nhật, hoặc xóa tài liệu trong Content Provider.

Bạn đang xem: Content provider là gì

Đang xem: Content provider là gì và nó thường được áp dụng để gia công gì?

Thành phần content provider cung ứng dữ liệu từ một áp dụng cho tất cả những người khác theo những hiểu biết. Các yêu cầu như thế được cách xử lý bởi các cách làm của lớp ContentResolver. Nhà cung cấp văn bản có thể thực hiện những biện pháp khác biệt nhằm lưu trữ tài liệu của nó và tài liệu rất có thể được tàng trữ vào đại lý tài liệu, trong tệp hoặc thậm chí qua mạng.

Content Provider cho phép chúng ta tập trung câu chữ vào trong 1 chỗ và có rất nhiều vận dụng khác nhau truy vấn câu chữ Khi đề xuất. Content Provider vận động siêu kiểu như đại lý dữ liệu chỗ bạn cũng có thể tróc nã vấn, chỉnh sửa văn bản, cũng tương tự thêm hoặc xóa văn bản bằng cách thức insert (), update (), delete () cùng query (). Trong hầu như những trường vừa lòng, tài liệu này được tàng trữ vào cửa hàng tài liệu SQlite .

Content Provider được thực hiện dưới dạng lớp bé của lớp ContentProvider cùng phải thực thi bộ API tiêu chuẩn có thể chấp nhận được các áp dụng không giống tiến hành thanh toán.

public class My Application extends ContentProvider

Content URIs

Để truy hỏi vấn Content Provider, chúng ta chỉ định chuỗi truy tìm vấn dưới dạng một URI có định dạng sau –

:////

Dưới đó là chi tiết về các phần khác biệt của URI

prefixNhư vậy luôn được đặt thành nội dung: //
authorityĐiều này hướng dẫn và chỉ định tên của phòng cung ứng nội dung, ví dụ như danh bạ , trình để mắt tới,…com.tutorialspoint.statusprovider
data_typeĐiều này cho thấy thêm nhiều loại dữ liệu cơ mà nhà cung cấp cụ thể này cung ứng. Ví dụ: nếu như bạn sẽ nhận thấy tất cả liên can liên hệ từ nhà cung cấp ngôn từ Danh bạ thì đường truyền dữ liệu vẫn là fan và URI trông y như câu chữ này : // contacts / people
IDNhư vậy quy định cụ thể hồ sơ đòi hỏi. Ví dụ: nếu bạn vẫn search số liên hệ 5 vào bên hỗ trợ nội dung Danh bạ thì URI đang trông giống như nội dung này : // contacts / people / 5 .

Tạo Content Provider

Có 5 bước nhằm sản xuất Content Provider:

Bước 1: Bạn cần được tạo nên một tấm Content Provider không ngừng mở rộng ContentProviderbaseclass.

Cách 2: Quý Khách đề xuất xác định shop URI của Content Provider sẽ tiến hành sử dụng để truy cập ngôn từ.

Bước 3: Tiếp theo, các bạn sẽ cần được tạo thành đại lý dữ liệu của riêng biệt bạn để giữ lại văn bản. Đôi khi, Android sử dụng cửa hàng tài liệu cùng form công tác làm việc SQLite cần ghi đtrần cách làm onCreate () đã thực hiện cách làm SQLite mở cửa Helper để tạo nên hoặc msống cơ sở dữ liệu của phòng cung cấp. lúc vận dụng của chúng ta được khởi đụng, trình cách xử trí onCreate () của mỗi Content Provider được gọi trên luồng ứng dụng thiết yếu.

Cách 4: Quý Khách đang đề nghị thực hiện những tầm nã vấn Content Provider để tiến hành các chuyển động rõ ràng của cơ sở dữ liệu không giống nhau.

Cách 5: Cuối thuộc hãy đăng ký Content Provider của bạn vào tệp hoạt động của chúng ta bằng cách thực hiện thẻ .

Dưới đây là list các phương pháp bạn phải ghi nhớ trong Content Provider:

*

onCreate (): Phương thơm thức này được Hotline lúc công ty hỗ trợ được khởi hễ.query (): Pmùi hương thức này nhận ra một đề nghị xuất phát từ 1 thứ khách hàng. Kết trái được trả về dưới dạng đối tượng người tiêu dùng Cursor.insert (): Phương thức này cnhát một bạn dạng ghi bắt đầu vào nhà cung cấp câu chữ.delete (): Phương thơm thức này xóa một bản ghi hiện gồm từ bên cung cấp văn bản.update (): Phương thơm thức này cập nhật một bản ghi hiện tại có trường đoản cú đơn vị cung ứng câu chữ.getType (): Phương thức này trả về vẻ bên ngoài MIME của dữ liệu tại URI vẫn cho.

API các bạn thực hiện nhằm tầm nã xuất tài liệu trường đoản cú Content Provider

Ứng dụng của Content Provider có thể chỉ định và hướng dẫn các quyền nhưng mà áp dụng khác rất có thể bao gồm để truy cập tài liệu của trình hỗ trợ kia. Những quyền này bảo đảm rằng người dùng biết một áp dụng sẽ nỗ lực truy cập dữ liệu dựa trên những đòi hỏi của Content Provider, các áp dụng không giống yêu cầu.

Xem thêm: Các Loại Mứt: 10 Cách Làm Các Loại Mứt Tết Ngon Đơn Giản Tại Nhà

Như vẫn để ý, Content Provider đang yên cầu quyền game android.permission.READ_USER_DICTIONARY nhằm truy tìm xuất tài liệu từ nó và game android.permission.WRITE_USER_DICTIONARY riêng nhằm ckém, cập nhật, hoặc xóa dữ liệu.

Để nhấn những quyền đề xuất nhằm truy cập một trình cung ứng, áp dụng thử khám phá chúng bằng một phần tử trong tệp phiên bản kê knhị của nó. lúc Trình quản lý Gói Android cài đặt các áp dụng, người tiêu dùng phải phê chuẩn chỉnh tất cả quyền nhưng vận dụng tận hưởng. Nếu người dùng phê chuẩn chỉnh tất cả quyền, khi ấy Trình quản lý Gói sẽ liên tục setup trường hợp người dùng không phê chuẩn chỉnh chúng, Trình thống trị Gói đang diệt vứt Việc setup.

Phần tử sau thử khám phá quyền truy tìm cập:

Cyếu, update, hoặc xóa tài liệu trong Content Provider

Giống nlỗi giải pháp các bạn truy vấn xuất tài liệu xuất phát từ 1 trình hỗ trợ, bạn cũng có thể thực hiện can dự thân một sản phẩm khách hàng hỗ trợ và ContentProvider của trình hỗ trợ nhằm sửa đổi tài liệu. Quý Khách Điện thoại tư vấn một phương pháp ContentResolver cùng với các tyêu thích đối được đưa sang cách thức ContentProvider khớp ứng. Trình cung cấp cùng sản phẩm khách cung ứng vẫn auto xử lý bảo mật với truyền thông media liên tiến trình.

Cnhát dữ liệu

Để chèn tài liệu vào Content Provider, chúng ta Hotline ContentResolver.insert(): Phương pháp này cyếu một mặt hàng new vào trình cung ứng với trả về một URI nội dung đến sản phẩm đó. Đoạn mã HTML này cho biết thêm cách cnhát một tự new vào Trình hỗ trợ Từ điển Người dùng:

// Defines a new Uri object that receives the result of the insertion

Uri mNewUri;

// Defines an object lớn contain the new values lớn insert

ContentValues mNewValues = new ContentValues();

/*

* Sets the values of each column và inserts the word. The arguments to lớn the “put”

* method are “column name” và “value”

*/

mNewValues.put(UserDictionary.Words.APP_ID, “example.user”);

mNewValues.put(UserDictionary.Words.LOCALE, “en_US”);

mNewValues.put(UserDictionary.Words.WORD, “insert”);

mNewValues.put(UserDictionary.Words.FREQUENCY, “100”);

mNewUri = getContentResolver().insert(

UserDictionary.Word.CONTENT_URI, // the user dictionary content URI

mNewValues // the values khổng lồ insert

);

Dữ liệu mang lại sản phẩm bắt đầu đi vào trong một đối tượng người sử dụng ContentValues đơn nhất, đối tượng người sử dụng này có dạng tương tự như nlỗi nhỏ chạy một mặt hàng. Các cột trong đối tượng người tiêu dùng này sẽ không cần có thuộc phong cách dữ liệu, cùng ví như hoàn toàn không muốn chỉ định và hướng dẫn một cực hiếm, chúng ta có thể đặt một cột thành null bằng cách sử dụng ContentValues.putNull().

Đoạn mã HTML ko thêm cột _ID bởi cột này được auto bảo trì. Trình cung ứng sẽ gán một giá trị nhất _ID cho từng hàng được thêm. Các trình cung cấp thường xuyên thực hiện quý giá này làm khóa thiết yếu của bảng.

URI văn bản được trả về trong newUri đang xác minh sản phẩm bắt đầu thêm, bao gồm định dạng như sau:

content://user_dictionary/words/

là ngôn từ của _ID mang lại hàng bắt đầu. Hầu hết các trình hỗ trợ mọi rất có thể auto phạt hiện dạng URI văn bản này rồi tiến hành thao tác được yêu cầu bên trên mặt hàng ví dụ kia.

Để thừa nhận giá trị _ID trường đoản cú Uri được trả về, hãy gọi ContentUris.parseId().

Cập nhật dữ liệu

Để cập nhật, chúng ta thực hiện một đối tượng người sử dụng ContentValues với những giá trị được cập nhật y hệt như phương pháp các bạn làm cho với vấn đề cnhát, với những tiêu chí chọn lựa giống như biện pháp chúng ta làm với truy vấn. Phương pháp đồ vật khách hàng nhưng mà các bạn áp dụng là ContentResolver.update(). quý khách chỉ cần thêm những cực hiếm vào đối tượng người sử dụng ContentValues cho những cột cơ mà ai đang update. Nếu bạn muốn xóa các văn bản của một cột, hãy đặt quý giá thành null.

Đoạn mã HTML sau đổi khác tất cả sản phẩm cùng với cột phiên bản địa bao gồm ngôn từ “en” thành cột có phiên bản địa là null. Giá trị trả về là số sản phẩm đã có được cập nhật:

// Defines an object to lớn contain the updated values

ContentValues mUpdateValues = new ContentValues();

// Defines selection criteria for the rows you want khổng lồ update

String mSelectionClause = UserDictionary.Words.LOCALE + “LIKE ?”;

String mSelectionArgs = “en_%”;

// Defines a variable to contain the number of updated rows

int mRowsUpdated = 0;

/*

* Sets the updated value & updates the selected words.

*/

mUpdateValues.putNull(UserDictionary.Words.LOCALE);

mRowsUpdated = getContentResolver().update(

UserDictionary.Words.CONTENT_URI, // the user dictionary content URI

mUpdateValues // the columns to update

mSelectionClause // the column lớn select on

mSelectionArgs // the value khổng lồ compare to

);

Quý Khách cũng đề nghị tkhô cứng lọc thông báo nguồn vào của người dùng Khi hotline ContentResolver.update(). Để bài viết liên quan về điều này, hãy đọc phần Bảo vệ trước mục nhập ô nhiễm.

Xem thêm: How To Add Schema Markup To Wordpress Schema Plugin For Wordpress

Xóa dữ liệu

Xóa tương tự như như truy nã xuất dữ liệu hàng: chúng ta chỉ định các tiêu chuẩn sàng lọc mang lại sản phẩm nhưng mà bạn muốn xóa cùng cách thức máy khách hàng trả về số sản phẩm được xóa. Đoạn mã HTML sau xóa các hàng bao gồm appid khớp với “user”. Phương pháp sẽ trả về số mặt hàng được xóa.


Chuyên mục: Digital Marketing