Thành phần nhà cung cấp nội dung cung cấp dữ liệu từ ứng dụng này sang ứng dụng khác theo yêu cầu.
Khóa học lập trình Android đôi khi nó là cần thiết để chia sẻ dữ liệu trên các ứng dụng. Đây là nơi các nhà cung cấp nội dung trở nên rất hữu ích.
Các nhà cung cấp nội dung cho phép bạn tập trung nội dung ở một nơi và có nhiều ứng dụng khác nhau truy cập khi cần.
Sau đây là nội dung của tệp hoạt động chính được sửa đổi src / com.example.MyApplication / MainActivity.java . Tập tin này có thể bao gồm từng phương pháp vòng đời cơ bản.
Các yêu cầu như vậy được xử lý bằng các phương thức của lớp ContentResolver.
Nhà cung cấp nội dung có thể sử dụng các cách khác nhau để lưu trữ dữ liệu của mình và dữ liệu có thể được lưu trữ trong cơ sở dữ liệu, trong tệp hoặc thậm chí qua mạng.
![]() |
| Khóa học lập trình Android |
TRÌNH CHIẾU NỘI DUNG
Khóa học lập trình Android đôi khi nó là cần thiết để chia sẻ dữ liệu trên các ứng dụng. Đây là nơi các nhà cung cấp nội dung trở nên rất hữu ích.
Các nhà cung cấp nội dung cho phép bạn tập trung nội dung ở một nơi và có nhiều ứng dụng khác nhau truy cập khi cần.
Nhà cung cấp nội dung hoạt động rất giống với cơ sở dữ liệu nơi bạn có thể truy vấn nó, chỉnh sửa nội dung của nó, cũng như thêm hoặc xóa nội dung bằng các phương thức insert (), update (), xóa () và query (). Trong hầu hết các trường hợp, dữ liệu này được lưu trữ trong cơ sở dữ liệu SQlite .
Nhà cung cấp nội dung được triển khai như một lớp con của lớp ContentProvider và phải triển khai một bộ API tiêu chuẩn cho phép các ứng dụng khác thực hiện giao dịch.
Trước hết, bạn cần tạo một lớp Nhà cung cấp nội dung mở rộng ContentProviderbaseclass.
Thứ hai, bạn cần xác định địa chỉ URI của nhà cung cấp nội dung sẽ được sử dụng để truy cập nội dung.
Tiếp theo bạn sẽ cần tạo cơ sở dữ liệu của riêng bạn để giữ nội dung. Thông thường, Khóa học lập trình Android sử dụng cơ sở dữ liệu SQLite và khung cần ghi đè phương thức onCreate () sẽ sử dụng phương thức Trình trợ giúp mở SQLite để tạo hoặc mở cơ sở dữ liệu của nhà cung cấp.
Nhà cung cấp nội dung được triển khai như một lớp con của lớp ContentProvider và phải triển khai một bộ API tiêu chuẩn cho phép các ứng dụng khác thực hiện giao dịch.
public class My Application extends ContentProvider { }
URI nội dung
Để truy vấn nhà cung cấp nội dung, bạn chỉ định chuỗi truy vấn ở dạng URI có định dạng sau -<prefix>://<authority>/<data_type>/<id>Dưới đây là chi tiết về các phần khác nhau của URI
| Không. | Phần & Mô tả |
|---|---|
| 1 | tiếp đầu ngữ Điều này luôn được đặt thành nội dung: // |
| 2 | thẩm quyền Điều này chỉ định tên của nhà cung cấp nội dung, ví dụ: danh bạ , trình duyệt , v.v ... Đối với nhà cung cấp nội dung bên thứ ba, đây có thể là tên đủ điều kiện, chẳng hạn như com.tutorialspoint.statusprovider |
| 3 | loại dữ liệu Điều này cho biết loại dữ liệu mà nhà cung cấp cụ thể này cung cấp. Ví dụ: nếu bạn nhận được tất cả các liên hệ từ nhà cung cấp nội dung Danh bạ , thì đường dẫn dữ liệu sẽ là người và URI sẽ giống như nội dung này : // danh bạ / người |
| 4 | ID Điều này chỉ định hồ sơ cụ thể được yêu cầu. Ví dụ: nếu bạn đang tìm kiếm số liên lạc số 5 trong nhà cung cấp nội dung Danh bạ thì URI sẽ giống như nội dung này : // danh bạ / người / 5 . |
Tạo nhà cung cấp nội dung
Điều này bao gồm số bước đơn giản để tạo nhà cung cấp nội dung của riêng bạn.Trước hết, bạn cần tạo một lớp Nhà cung cấp nội dung mở rộng ContentProviderbaseclass.
Thứ hai, bạn cần xác định địa chỉ URI của nhà cung cấp nội dung sẽ được sử dụng để truy cập nội dung.
Tiếp theo bạn sẽ cần tạo cơ sở dữ liệu của riêng bạn để giữ nội dung. Thông thường, Khóa học lập trình Android sử dụng cơ sở dữ liệu SQLite và khung cần ghi đè phương thức onCreate () sẽ sử dụng phương thức Trình trợ giúp mở SQLite để tạo hoặc mở cơ sở dữ liệu của nhà cung cấp.
Khi ứng dụng của bạn được khởi chạy, trình xử lý onCreate () của mỗi Nhà cung cấp nội dung của nó được gọi trên luồng ứng dụng chính.
Tiếp theo, bạn sẽ phải triển khai các truy vấn của Nhà cung cấp nội dung để thực hiện các hoạt động cụ thể của cơ sở dữ liệu khác nhau.
Cuối cùng, đăng ký Nhà cung cấp nội dung của bạn trong tệp hoạt động của bạn bằng cách sử dụng thẻ <nhà cung cấp>.
Dưới đây là danh sách các phương thức bạn cần ghi đè trong lớp Nhà cung cấp nội dung để Nhà cung cấp nội dung của bạn hoạt động
query () Phương thức này nhận được yêu cầu từ máy khách. Kết quả được trả về dưới dạng đối tượng Con trỏ.
insert () Phương thức này chèn một bản ghi mới vào nhà cung cấp nội dung.
xóa () Phương thức này xóa một bản ghi hiện có từ nhà cung cấp nội dung.
update () Phương thức này cập nhật một bản ghi hiện có từ nhà cung cấp nội dung.
getType () Phương thức này trả về kiểu MIME của dữ liệu tại URI đã cho.
Ví dụ này sẽ giải thích cho bạn cách tạo ContentProvider của riêng bạn . Vì vậy, hãy làm theo các bước sau để tương tự như những gì chúng tôi đã làm trong khi tạo Ví dụ Hello World
Tiếp theo, bạn sẽ phải triển khai các truy vấn của Nhà cung cấp nội dung để thực hiện các hoạt động cụ thể của cơ sở dữ liệu khác nhau.
Cuối cùng, đăng ký Nhà cung cấp nội dung của bạn trong tệp hoạt động của bạn bằng cách sử dụng thẻ <nhà cung cấp>.
Dưới đây là danh sách các phương thức bạn cần ghi đè trong lớp Nhà cung cấp nội dung để Nhà cung cấp nội dung của bạn hoạt động
TRÌNH CHIẾU NỘI DUNG
onCreate () Phương thức này được gọi khi nhà cung cấp được bắt đầu.query () Phương thức này nhận được yêu cầu từ máy khách. Kết quả được trả về dưới dạng đối tượng Con trỏ.
insert () Phương thức này chèn một bản ghi mới vào nhà cung cấp nội dung.
xóa () Phương thức này xóa một bản ghi hiện có từ nhà cung cấp nội dung.
update () Phương thức này cập nhật một bản ghi hiện có từ nhà cung cấp nội dung.
getType () Phương thức này trả về kiểu MIME của dữ liệu tại URI đã cho.
Ví dụ này sẽ giải thích cho bạn cách tạo ContentProvider của riêng bạn . Vì vậy, hãy làm theo các bước sau để tương tự như những gì chúng tôi đã làm trong khi tạo Ví dụ Hello World
| Bậc thang | Sự miêu tả |
|---|---|
| 1 | Bạn sẽ sử dụng Android StudioIDE để tạo một ứng dụng Android và đặt tên là Ứng dụng của tôi trong gói com.example.MyApplication , với Activity trống. |
| 2 | Sửa đổi tệp hoạt động chính MainActivity.java để thêm hai phương thức mới onClickAddName () và onClickRetrieveStudents () . |
| 3 | Tạo một file java mới gọi là StudentsProvider.java thuộc góicom.example.MyApplication để xác định nhà cung cấp thực tế của bạn và phương pháp liên quan. |
| 4 | Đăng ký nhà cung cấp nội dung của bạn trong tệp AndroidManifest.xmlbằng cách sử dụng thẻ <nhà cung cấp ... /> |
| 5 | Sửa đổi nội dung mặc định của tệp res / layout / Activity_main.xml để bao gồm một GUI nhỏ để thêm các bản ghi của sinh viên. |
| 6 | Không cần phải thay đổi tệp String.xml.Android hãy chăm sóc tệp string.xml. |
| 7 | Chạy ứng dụng để khởi chạy trình giả lập Android và xác minh kết quả của những thay đổi được thực hiện trong ứng dụng. |
Chúng tôi đã thêm hai phương thức mới onClickAddName () và onClickRetrieveStudents () để xử lý tương tác của người dùng với ứng dụng.
Tạo tệp mới StudentProvider.java trong gói com.example.MyApplication và sau đây là nội dung của src / com.example.MyApplication / StudentProvider.java -
Sau đây sẽ là nội dung được sửa đổi của tệp AndroidManifest.xml . Tại đây, chúng tôi đã thêm thẻ <nhà cung cấp ... /> để bao gồm nhà cung cấp nội dung của chúng tôi:
Hãy chắc chắn rằng bạn có nội dung sau của tệp res / value / chuỗi.xml :
Tạo tệp mới StudentProvider.java trong gói com.example.MyApplication và sau đây là nội dung của src / com.example.MyApplication / StudentProvider.java -
Sau đây sẽ là nội dung được sửa đổi của tệp AndroidManifest.xml . Tại đây, chúng tôi đã thêm thẻ <nhà cung cấp ... /> để bao gồm nhà cung cấp nội dung của chúng tôi:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.MyApplication"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <provider android:name="StudentsProvider" android:authorities="com.example.MyApplication.StudentsProvider"/> </application> </manifest>Sau đây sẽ là nội dung của tệp res / layout / Activity_main.xm
Hãy chắc chắn rằng bạn có nội dung sau của tệp res / value / chuỗi.xml :
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">My Application</string> </resources>;Hãy thử chạy ứng dụng Ứng dụng của tôi đã sửa đổi mà chúng tôi vừa tạo. Tôi giả sử bạn đã tạo AVD của mình trong khi thực hiện thiết lập môi trường.
Để chạy ứng dụng từ Android Studio IDE, hãy mở một trong các tệp hoạt động của dự án của bạn và nhấp vào biểu tượng Chạy từ thanh công cụ.
Khóa học lập trình Android Studio cài đặt ứng dụng trên AVD của bạn và khởi động nó và nếu mọi thứ đều ổn với thiết lập và ứng dụng của bạn, nó sẽ hiển thị theo cửa sổ Trình mô phỏng, hãy kiên nhẫn vì đôi khi có thể dựa vào tốc độ máy tính của bạn
Bây giờ, hãy nhập Tên và Lớp của sinh viên và cuối cùng nhấp vào nút Thêm Tên , điều này sẽ thêm hồ sơ sinh viên vào cơ sở dữ liệu và sẽ flash một thông báo ở phía dưới hiển thị URI ContentProvider cùng với số hồ sơ được thêm vào cơ sở dữ liệu.
Bây giờ, hãy nhập Tên và Lớp của sinh viên và cuối cùng nhấp vào nút Thêm Tên , điều này sẽ thêm hồ sơ sinh viên vào cơ sở dữ liệu và sẽ flash một thông báo ở phía dưới hiển thị URI ContentProvider cùng với số hồ sơ được thêm vào cơ sở dữ liệu.
Hoạt động này sử dụng phương thức insert () của chúng tôi . Hãy lặp lại quy trình này để thêm vài sinh viên vào cơ sở dữ liệu của nhà cung cấp nội dung của chúng tôi.
Khi bạn đã hoàn tất việc thêm các bản ghi trong cơ sở dữ liệu, bây giờ đã đến lúc yêu cầu ContentProvider cung cấp lại cho chúng tôi các bản ghi đó, vì vậy, hãy nhấp vào nút Lấy các sinh viên sẽ tìm nạp và hiển thị tất cả các bản ghi theo từng bước của chúng tôi phương thức truy vấn () .
Bạn có thể viết các hoạt động chống lại các hoạt động cập nhật và xóa bằng cách cung cấp các hàm gọi lại trong tệp MainActivity.java và sau đó sửa đổi giao diện người dùng để có các nút để cập nhật và xóa các hoạt động giống như cách chúng tôi đã thực hiện cho các hoạt động thêm và đọc.
Bằng cách này, bạn có thể sử dụng Nhà cung cấp nội dung hiện có như Sổ địa chỉ hoặc bạn có thể sử dụng khái niệm Nhà cung cấp nội dung trong việc phát triển các ứng dụng hướng cơ sở dữ liệu đẹp, nơi bạn có thể thực hiện tất cả các loại hoạt động cơ sở dữ liệu như đọc, viết, cập nhật và xóa như đã giải thích ở trên trong ví dụ.
Khi bạn đã hoàn tất việc thêm các bản ghi trong cơ sở dữ liệu, bây giờ đã đến lúc yêu cầu ContentProvider cung cấp lại cho chúng tôi các bản ghi đó, vì vậy, hãy nhấp vào nút Lấy các sinh viên sẽ tìm nạp và hiển thị tất cả các bản ghi theo từng bước của chúng tôi phương thức truy vấn () .
Bạn có thể viết các hoạt động chống lại các hoạt động cập nhật và xóa bằng cách cung cấp các hàm gọi lại trong tệp MainActivity.java và sau đó sửa đổi giao diện người dùng để có các nút để cập nhật và xóa các hoạt động giống như cách chúng tôi đã thực hiện cho các hoạt động thêm và đọc.
Bằng cách này, bạn có thể sử dụng Nhà cung cấp nội dung hiện có như Sổ địa chỉ hoặc bạn có thể sử dụng khái niệm Nhà cung cấp nội dung trong việc phát triển các ứng dụng hướng cơ sở dữ liệu đẹp, nơi bạn có thể thực hiện tất cả các loại hoạt động cơ sở dữ liệu như đọc, viết, cập nhật và xóa như đã giải thích ở trên trong ví dụ.

Không có nhận xét nào:
Đăng nhận xét