package com.mycompany.mycontentprovider; import android.content.ContentProvider; import android.content.ContentValues; import android.database.Cursor; import android.net.Uri; import android.support.annotation.NonNull; import android.support.annotation.Nullable; /** * Created by sstek_mars on 2017/9/4. */ public class MyProvider extends ContentProvider { // 创建自己的内容提供器的步骤 /** * 一个标准内容的URI写法如下: * content://com.example.app.provider/table1 * * URI添加id * content://com.example.app.provider/table1/id * * 通配符匹配 * *:表示匹配任意长度的任意字符 content://com.example.app.provider/* * #:表示匹配任意长度的数字 content://com.example.app.provider/table1/# */ /** * 初始化内容提供器时候调用。通常会在这里完成对数据库的创建和升级操作,返回true表示初始化成功,返回false则失败。 * 只有存在ContentResolver尝试访问我们程序中的数据时,内容提供器才会被初始化 */ @Override public boolean onCreate() { return false; } /** * 从内容提供器中查询数据 * 使用uri参数来确定查询哪张表 * projection用于确定查询哪些列 * selection 和 selectionArgs 用于查询哪些行 * sortOrder 用于对结果进行排序 * 查询的结果存放在Cursor 对象中返回 */ @Nullable @Override public Cursor query(@NonNull Uri uri, @Nullable String[] projection, @Nullable String selection, @Nullable String[] selectionArgs, @Nullable String sortOrder) { return null; } /** * 向内容提供器中添加一条数据 * 使用uri 参数来确定要添加到的表,待添加的数据保存在values参数中,添加完成后,返回一个用于表示这条新纪录的URI */ @Nullable @Override public Uri insert(@NonNull Uri uri, @Nullable ContentValues values) { return null; } /** * 更新内容提供器中已有数据 * 使用uri参数来确定更新哪一张表单中的数据,新数据保存在values参数中 * selection 和 selectionArgs参数用于约束更新哪些行 * 受影响的行数将作为返回值返回 */ @Override public int update(@NonNull Uri uri, @Nullable ContentValues values, @Nullable String selection, @Nullable String[] selectionArgs) { return 0; } /** * 从内容提供器中删除数据 * 使用uri参数来确定删除哪一张表中的数据 * selection 和 selectionArgs参数用于约束更新哪些行 * 受影响的行数将作为返回值返回 */ @Override public int delete(@NonNull Uri uri, @Nullable String selection, @Nullable String[] selectionArgs) { return 0; } /** * 根据传入的URI来返回相应的MIME类型 * */ @Nullable @Override public String getType(@NonNull Uri uri) { return null; } }
Andriod---创建自己的内容提供器
最新推荐文章于 2020-03-08 02:40:01 发布