Content provider là gì

Content Provider vào Android

Ở phần 1, chúng ta đã mày mò biện pháp tàng trữ tài liệu của một áp dụng vào đại lý tài liệu SQLite. Trong ngôi trường vừa lòng này, tài liệu là “gia sản riêng” của ứng dụng với chẳng thể được truy cập bởi vì những ứng dụng khác trong và một trang bị Android.

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

Đang xem: Content provider là gì

Content Provider hỗ trợ qui định truy cập dữ liệu thân các áp dụng khác biệt bên trên cùng một trang bị Android. Sử dụng Content Provider giống bề ngoài tiếp xúc client/VPS trong số đó áp dụng truy vấn dữ liệu nhập vai trò là client với Content Provider đóng vai trò là VPS.

Một Content Provider là 1 trong những lớp con của lớp apk.nội dung.ContentProvider và Việc sinh sản một Content Provider tương quan đến việc thực hiện những phương thức sau:

Phương thứcChức năng
onCreate()Phương thơm thức này được gọi lúc 1 Content Provider được chế tác lần thứ nhất với được dùng để thực thi các trách nhiệm khởi tạo được thử khám phá vì Content Provider.
query()Phương thơm thức này được Hotline khi một áp dụng (client) thử khám phá dữ liệu được trao từ Content Provider. Dữ liệu nhận được đựng trong một đối tượng người sử dụng Cursor.
insert()Phương thức này được điện thoại tư vấn lúc 1 mặt hàng new được chế tạo đại lý tài liệu Provider.
update()Pmùi hương thức này được Điện thoại tư vấn Lúc những hàng trường thọ sẵn cần được update đại diện thay mặt mang đến client (ứng dụng).
delete()Phương thơm thức này được Gọi lúc những hàng bị xóa xuất phát từ một bảng.

Xem thêm: Google Webmaster Tools Là Gì ? Hướng Dẫn Sử Dụng Công Cụ Quản Trị Website

getType()Trả về đẳng cấp MIME của dữ liệu được lưu trữ bởi Content Provider.

 Content URI

Một sản phẩm Android có thể chứa được nhiều Content Providers, vì thế, khối hệ thống đề xuất cung ứng phương án nhằm rõ ràng những Content Providers. URI là một giải pháp chất nhận được xác định dữ liệu ví dụ với cùng một Content Provider rõ ràng.

Một URI rất có thể tạo thành nhị phần: phần xác minh Content Provider (tốt nói một cách khác là phần Authority) có hình thức tương tự một gói (package) trong vận dụng Android, ví dụ: com.example.mydbtiện ích.myprovider; phần lắp thêm nhị xác định dữ liệu của Content Provider, ví dụ tmê mệt chiếu mang lại một bảng tên student trong Content Provider: com.example.mydbtiện ích.myprovider/student hay xác định tài liệu cụ thể hơn, ví dụ tmê man chiếu cho một sản phẩm có giá trị ID là 3 vào bảng student: com.example.mydbphầm mềm.myprovider/student/3.

Có đầy đủ URI rất có thể mở rộng mang lại các cấp cùng lúc này chúng ta cũng có thể dùng lớp UriMatcher.

Đối tượng ContentResolver

Truy cập đến một Content Provider đã đạt được nhờ vào đối tượng người sử dụng ContentResolver. Một ứng dụng rất có thể đã có được tsay đắm chiếu mang đến đối tượng người tiêu dùng ContentResolver bằng phương pháp call cách thức getContentResolver(). Đối tượng ContentResolver cất những phương thức tựa như như của một Content Provider nhỏng insert(), query(), update(), v.v.

Xem thêm: Cái Qq Là Gì Facebook Sự Tích Cái Quần Què, Giải Thích Ý Nghĩa Qq

Phần tử

Một Content Provider, để được thực hiện trong khối hệ thống Android, bắt buộc được knhị báo vào tập tin manifest cùng với thành phần . Phần tử chứa nhì ở trong tính đặc trưng là:

android:authority: là URI cùng với phần xác định nội dung của Content Providerandroid:name: đựng tên lớp thực hiện Content Provider

Dự án minh họa sử dụng Content Provider

Tạo dự án

– Tìm đến cùng xào luộc thư mục vận dụng SQLiteDemoApplication cùng đổi tên (mang định là SQLiteDemoApplication-Copy) thành ContentProviderApplication.

– Đóng dự án công trình hiện vẫn đang msống trên Android Studio bằng phương pháp chọn File > Cthua thảm Project. Trong hành lang cửa số Welcome to lớn Android Studio chọn Open an existing Android Studio project:

*
*
*
*
*
*
*
*
*
*

phải bọn họ knhị báo nlỗi sau:

package com.millionarthur.mobi.database.provider;import app android.content.ContentProvider;import app android.content.ContentValues;import app android.database.Cursor;import app android.net.Uri;import game android.content.UriMatcher;import com.millionarthur.mobi.sqlitedemoapplication.DataHandler;import app android.database.sqlite.SQLiteDatabase;import app android.database.sqlite.SQLiteQueryBuilder;import app android.text.TextUtils;public class MyContentProvider extends ContentProvider …Khởi sản xuất biểu lộ lớp DataHandler trong cách tiến hành onCreate() nlỗi sau:

public class MyContentProvider extends ContentProvider { … private DataHandler myHandler; public MyContentProvider()