美文网首页
Content Provider总结

Content Provider总结

作者: 冰薄荷汽水 | 来源:发表于2017-03-28 19:04 被阅读0次

Content Provider是什么

组件Content Provider是为了在不同应用程序之间进行数据交换的的标准API。比如,一个应用有一些数据,它可以允许别的应用来访问这些数据,那么它可以通过ContentProvider来暴露访问这些数据的接口,当别的应用想要访问这些数据时可以通过ContentResolver来操作,包括增删改查等等。

Content Provider简单使用

下面是一个简单的例子,我们可以通过ContentResolver内容解析者来访问系统里通讯录里面的联系人信息。

  1. 新建布局文件 layout_activity_cp.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:gravity="center"
              android:orientation="vertical">

    <Button
        android:id="@+id/btn_read_contact"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="读取联系人数据"/>
</LinearLayout>
  1. 新建Activity
public class ContentProviderActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        //设置布局
        setContentView(R.layout.layout_activity_cp);

        //按钮点击事件
        Button btnReadContact = (Button) findViewById(R.id.btn_read_contact);
        btnReadContact.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                Cursor mCursor = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI,
                        null, null, null, null);

                while (mCursor.moveToNext()) {

                    String name = mCursor.getString(mCursor.getColumnIndex
                            (ContactsContract.Contacts.DISPLAY_NAME));

                    Log.e("---contactname---", name);

                }

            }
        });

    }
}
  1. 清单文件 AndroidManifest.xml里添加读取联系人的权限,同时别忘了要注册Activity。
 <uses-permission android:name="android.permission.READ_CONTACTS"/>

这样,运行后查看输出结果如下图所示:

QinQin---XiaoMing

Content Provider自定义

步骤

  1. SQLite数据库表,用于存储数据。
  2. 创建一个继承自ContentProvider的子类,在其中完成数据操作。
  3. AndroidManifest.xml文件中声明provider
  4. 外部访问

用法解析

  1. 创建数据库。这里用SQLite数据库保存数据。
1
  1. 新建继承自ContentProvider的子类,完成基本操作。
2 3
  1. 在清单文件里声明provider。
3
  1. 数据访问
4

相关文章

网友评论

      本文标题:Content Provider总结

      本文链接:https://www.haomeiwen.com/subject/gmcsottx.html