CONTENT PROVIDER LÀ GÌ

Content Provider quản lý truy cập vào một kho dữ liệu. Nội dung Provider là thành phần của một vận dụng Android, nó thường cung cấp UI của chính mình để làm việc 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 bọn họ sẽ đi tìm kiếm hiểu mọi nội dung thiết yếu sau đây:

*

onCreate (): cách thức này được điện thoại tư vấn khi nhà cung ứng được khởi động.query (): cách thức này nhận thấy một yêu thương cầu từ 1 máy khách. Hiệu quả được trả về bên dưới dạng đối tượng người sử dụng Cursor.insert (): thủ tục này chèn một bạn dạng ghi bắt đầu vào nhà cung ứng nội dung.delete (): cách làm này xóa một phiên bản ghi hiện tất cả từ nhà cung cấp nội dung.update (): phương thức này cập nhật một phiên bản ghi hiện bao gồm từ nhà cung ứng nội dung.getType (): thủ tục này trả về loại MIME của dữ liệu tại URI đã cho.

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

API bạn thực hiện để truy vấn xuất dữ liệu từ content Provider

Ứng dụng của nội dung Provider có thể chỉ định những quyền mà ứng dụng khác có thể có để truy vấn dữ liệu của trình cung ứng đó. Rất nhiều quyền này bảo đảm an toàn rằng người tiêu dùng biết một áp dụng sẽ cố gắng truy cập tài liệu dựa trên các yêu cầu của content Provider, những ứng dụng không giống yêu cầu.


READ tách biệt Lễ hôn phối Là Gì, đọc Đúng Về tự Thành Hôn, Tân Hôn cùng Vu Quy

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

Để nhận những quyền cần để truy cập một trình cung cấp, ứng dụng yêu cầu chúng bằng một phần tử trong tệp bản kê khai của nó. Lúc Trình thống trị Gói Android cài đặt các ứng dụng, người tiêu dùng phải phê chuẩn chỉnh tất cả quyền mà vận dụng yêu cầu. Nếu người tiêu dùng phê chuẩn chỉnh tất cả quyền, khi ấy Trình quản lý Gói vẫn tiếp tục thiết đặt nếu người tiêu dùng không phê chuẩn chúng, Trình thống trị Gói vẫn hủy bỏ bài toán cài đặt.

Phần tử sau yêu mong quyền tầm nã cập:

Chèn, cập nhật, hoặc xóa tài liệu trong nội dung Provider

Giống như cách các bạn truy xuất dữ liệu xuất phát từ một trình cung cấp, chúng ta có thể sử dụng can hệ giữa một lắp thêm khách cung ứng và ContentProvider của trình cung ứng để sửa đổi dữ liệu. Các bạn gọi một phương pháp ContentResolver với những tham đối được đưa sang phương thức ContentProvider tương ứng. Trình cung cấp và sản phẩm khách hỗ trợ sẽ tự động xử lý bảo mật và media liên tiến trình.

Chèn dữ liệu

Để chèn dữ liệu vào content Provider, chúng ta gọi ContentResolver.insert(): phương thức này chèn một hàng bắt đầu vào trình cung cấp và trả về một URI văn bản cho mặt hàng đó. Đoạn mã HTML này cho thấy thêm cách chèn một từ mới vào Trình cung cấp Từ điển fan dùng:

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

Uri mNewUri;

// Defines an object khổng lồ contain the new values khổng lồ insert

ContentValues mNewValues = new ContentValues();

/*

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

* method are “column name” and “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 lớn insert

);

Dữ liệu cho hàng mới đi vào trong một đối tượng người tiêu dùng ContentValues đơn lẻ, đối tượng người sử dụng này bao gồm dạng giống như như nhỏ chạy một hàng. Những cột trong đối tượng người tiêu dùng này không cần có cùng vẻ bên ngoài dữ liệu, và nếu trọn vẹn không mong muốn chỉ định một giá bán trị, bạn cũng có thể đặt một cột thành null bằng phương pháp sử dụng ContentValues.putNull().

Đoạn mã HTML không thêm cột _ID bởi cột này được auto duy trì. Trình hỗ trợ sẽ gán một quý hiếm duy tốt nhất _ID cho mỗi hàng được thêm. Những trình cung cấp thường áp dụng giá trị này làm khóa thiết yếu của bảng.

Xem thêm: Cách Điều Trị Bệnh Xơ Gan - Bệnh Xơ Gan Khó Chữa Nhưng Dễ Phòng


URI văn bản được trả về trong newUri sẽ khẳng định hàng bắt đầu thêm, có định dạng như sau:

content://user_dictionary/words/

là văn bản của _ID mang đến hàng mới. đa số các trình cung cấp đều bao gồm thể tự động phát hiện dạng URI ngôn từ này rồi thực hiện làm việc được yêu ước trên hàng cụ thể đó.

Để nhận giá trị _ID từ bỏ Uri được trả về, hãy call ContentUris.parseId().

Cập nhật dữ liệu

Để cập nhật, bạn áp dụng một đối tượng người tiêu dùng ContentValues với các giá trị được cập nhật y hệt như cách bạn làm với bài toán chèn, và các tiêu chuẩn lựa chọn giống hệt như cách các bạn làm với truy tìm vấn. Cách thức máy khách mà bạn áp dụng là ContentResolver.update(). Bạn chỉ cần thêm các giá trị vào đối tượng người tiêu dùng ContentValues cho các cột mà ai đang cập nhật. Nếu bạn có nhu cầu xóa những nội dung của một cột, hãy đặt quý hiếm thành null.

Đoạn mã HTML sau thay đổi tất cả sản phẩm với cột bản địa có ngữ điệu “en” thành cột có phiên bản địa là null. Giá trị trả về là số hàng đã làm được cập nhật:

// Defines an object khổng lồ contain the updated values

ContentValues mUpdateValues = new ContentValues();

// Defines selection criteria for the rows you want to update

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

String mSelectionArgs = “en_%”;

// Defines a variable khổng lồ contain the number of updated rows

int mRowsUpdated = 0;

/*

* Sets the updated value and updates the selected words.

*/

mUpdateValues.putNull(UserDictionary.Words.LOCALE);

mRowsUpdated = getContentResolver().update(

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

mUpdateValues // the columns khổng lồ update

mSelectionClause // the column to select on

mSelectionArgs // the value lớn compare to

);

Bạn cũng phải thanh lọc tin tức đầu vào của người dùng khi gọi ContentResolver.update(). Để bài viết liên quan về điều này, hãy đọc phần bảo đảm trước mục nhập độc hại.

Xóa dữ liệu

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