一、设计目标
使用 Android 四大组件之一的 ContentProvider 进行数据获取
二、功能说明
ContentProvider作为Android四大组件之一,其主要作用是为不同APP之间数据共享提供统一的接口;ContentProvider通过URI来标识其他APP要访问的数据,通过ContentResolver的CURD方法实现对共享数据的操作。
(1)在 Android Studio 中新建一个空项目,命名为 MyProvider ,在其中新建一个 MyContentProvider 类用于共享该APP的数据。
(2)创建另一个空项目,命名为 MyResolver ,借助 ContentResolver 类访问MyProvider中共享的数据。
三、代码解析
1、ContentProvider
(1)在 Android Studio 中新建一个空项目,命名为 MyProvider ,在其中新建一个 MyContentProvider 类用于共享该APP的数据。
如下图所示为创建Content Provider类的详细过程,其中URI Authorities的命名为了让其他应用更方便地访问共享的数据。
创建完成后,在AndroidManifest.xml中会自动注册ContentProvider,若没有自动注册则可以手动添加。
<provider
android:name=".MyContentProvider"
android:authorities="lc.provider1"
android:enabled="true"
android:exported="true">
</provider>
(2)新建一个Java类,命名为MyDBHelper,继承SQLiteOpenHelper类,并实现onCreate和onUpgrade方法;SQLiteOpenHelper是SQLiteDatabase的一个帮助类,用来管理数据库的创建和版本的更新;对于MyDBHelper类,在onCreate()方法中利用execSQL()方法配置建表语句。
public class MyDBHelper extends SQLiteOpenHelper {
public MyDBHelper(@Nullable Context context, @Nullable String name