Content Provider là gì? Tạo Content Provider trong Android

CONTENT PROVIDER LÀ GÌ? CÁCH TẠO CONTENT PROVIDER TRONG ANDROID

Trên nền tảng Android thì một ứng dụng không thể nào truy cập cơ sở dữ liệu của các trang khác. Mỗi thư mục đều có id và vùng bộ nhớ để bảo vệ riêng. Nếu bạn muốn bật ứng dụng truy vấn hoặc thao tác dữ liệu của ứng dụng khác thì cần phần mềm Content Provider hỗ trợ. Bài viết hôm nay của TMS sẽ giúp bạn hiểu rõ hơn về Content Provider trong Android để bạn có sự lựa chọn hữu hiệu nhất!

Content URI trong Android

Khái niệm

Content URI là một URI định danh dưới dạng provider. Content URI bao gồm ký hiệu tên của toàn bộ provider và một tên chỉ tới một bảng. Để truy vấn data qua provider thì ta có thể dùng 4 định dạng như sau:

<prefix>://<authority>/<data_type>/<id>

  1.  

    <prefix>: nhập content://

  2.  

    <authority>: dùng để xác định tên của Content provider. Bạn phải nêu đầy đủ (VD: com.laptrinh.tmsprovider).

  3.  

    <data_type>: dùng để định dạng các thành phần con dữ liệu. Nó có thể có hoặc không hoặc chia ra làm nhiều phần.

  4.  

    <path>: chỉ định rõ một bản ghi trong tập hợp dữ liệu, mỗi bản ghi sẽ được đánh dấu id là một số duy nhất.

 

Content Provider là gì? Tạo Content Provider trong Android

Một số ví dụ về URI:

  • Content://media/internal/images

    – trả về List tất cả các ảnh lưu trong thiết bị

  • Content://contact/people

    – Trả về list tất cả các tên trong danh bạ

  • Content://contact/people/45

    – Trả về một kết quả danh bạ có ID là 45

Một URI được chia ra làm 2 phần chính như sau:

  • Phần Content Provider

  • Phần Contentresolver

Content provider là gì?

Khái niệm

Content provider là một thành phần để truy cập để truy cập quản lý dữ liệu, nó có thể được sử dụng nhiều cách khác nhau để lưu giữ dữ liệu và lưu giữ trong một cơ sở dữ liệu, một file hoặc thông qua một trang mạng khác.

Khi chúng ta cần chia sẻ dữ liệu từ các ứng dụng khác thì Content Provider thực sự hữu hiệu. Sơ đồ sau mô tả cách ContentProvider chia sẻ từ kho dữ liệu.

Content Provider là gì? Tạo Content Provider trong Android

 

Chức năng

Content provider trong Android điều phối việc truy cập dữ liệu thông qua các API và các component để cho phép thực hiện các transaction, bao gồm:

  • Chia sẻ dữ liệu đến các ứng dụng khác

  • Gửi dữ liệu sang widget

  • Trả về một kết quả tìm kiếm cho bạn thông qua Search Framework sử dụng

    SearchRecentSuggestionsProvider

    .

  • Đồng bộ dữ liệu của ứng dụng server bằng cách sử dụng

    AbstractThreadedSyncAdapter

    .

  • Tạo dữ liệu lên UI dung

    CursorLoader

    .

 

Content Provider là gì? Tạo Content Provider trong Android

Content Provider hoạt động rất giống với một cơ sở dữ liệu, bạn có thể truy vấn, chỉnh sửa nội dung, cũng như là thêm xóa các nội dung sử dụng các phương thức: insert(), update(), delete(), query().

Đối tượng Contentresolver

Truy cập đến một Content Provider được nhờ đối tượng Contentresolver. Bạn có thể dùng getContentResolver() để đạt được tham chiếu. Một Contentresolver chứa các phương thức ghi đè khác nhau:

Phương thức

Chức năng

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 yêu cầu 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. Cập nhật đã xóa dữ liệu.

 

getType()

Phương thức này trả về kiểu MIME của dữ liệu tại URI đã cho.

 

Cách tạo Content Provider trong Android

Để tạo riêng Content provider trong Android cho mình cũng khá đơn giản chỉ cần bạn cần làm theo 5 bước sau:

Bước 1: Bạn cần tạo một lớp Content Provider kế lớp ContentProvider baseclass.

Bước 2: Định nghĩa địa chỉ URI của Content Provider để truy cập nội dung đó.

Bước 3: Tạo Database riêng bằng việc sử dụng SQlite Database hoặc Framework. Nếu cần thiết để ghi đè hàm onCreate() thì sử dụng SQLite Open Helper để tạo và mở Database của Provider này.

Bước 4: Bạn cần implement các truy vấn Content Provider để thực hiện các truy vấn khác nhau.

Bước 5: Đăng ký Content Provider trong activity file bởi sử dụng <provider>.

Để xem được những dữ liệu từ các cơ sở khác thì phải nắm rõ và thực hiện các bước trên. Hy vọng bài viết này đã cung cấp thêm cho bạn những kiến thức để trau dồi và sử dụng Content Provider thật hiệu quả.