Android四大组件(笔记+代码)
在Android开发中,四大组件是构建应用程序的核心元素,它们分别是:Activity(活动)、Service(服务)、BroadcastReceiver(广播接收者)以及ContentProvider(内容提供者)。本笔记将重点关注ContentProvider,它是四大组件中用于实现数据共享的一个关键部分。 ContentProvider是Android系统中的一种机制,允许应用程序之间的数据交换。它使得一个应用可以暴露自己的数据给其他应用,或者访问其他应用的数据。为了创建一个ContentProvider,首先需要在AndroidManifest.xml清单文件中声明并注册它,例如: ```xml <provider android:name="类全名(包.类)" android:authorities="cn.xdl.db" android:exported="true" /> ``` 这里的`android:authorities`是ContentProvider的唯一标识,`android:exported`设置为`true`表示该ContentProvider可以被其他应用访问。 接下来,需要继承`ContentProvider`类,并实现其基本方法,包括`onCreate()`和增删改查(CRUD)方法: 1. `onCreate()`: 这个方法在ContentProvider初始化时被调用,可以在这里进行必要的数据准备工作。 2. CRUD方法: - `insert(Uri uri, ContentValues values)`: 添加数据 - `delete(Uri uri, String selection, String[] selectionArgs)`: 删除数据 - `update(Uri uri, ContentValues values, String selection, String[] selectionArgs)`: 更新数据 - `query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder)`: 查询数据 要从其他应用访问ContentProvider,通常通过`ContentResolver`进行操作。在上下文中调用`getContentResolver()`获取`ContentResolver`实例,然后使用它的`insert()`, `delete()`, `update()`, 和 `query()`方法,配合对应的ContentProvider Uri进行操作。例如,短信的ContentProvider Uri是`content://sms/`,可以用来获取或修改短信信息。 除了ContentProvider,笔记中还提到了SharedPreferences,这是Android中用于存储轻量级数据的一个简单机制。它提供了一种键值对的方式来保存和读取数据。获取SharedPreferences对象的代码如下: ```java SharedPreferences sp = getSharedPreferences("文件名", 模式); ``` 这里的模式通常有`MODE_PRIVATE`(默认,只有当前应用可以访问)、`MODE_WORLD_READABLE`和`MODE_WORLD_WRITEABLE`(允许其他应用读写,但已不推荐使用)。 要读取或修改SharedPreferences中的数据,可以使用`getXXX()`方法(如`getString()`, `putString()`等)和`Editor`对象。例如: ```java // 获取数据 String value = sp.getString("key", "默认值"); // 添加数据 Editor edit = sp.edit(); edit.putString("key", "新值"); edit.commit(); // 删除数据 edit.remove("key"); edit.commit(); ``` 此外,笔记还提到了如何在Android中插入短信。需要在AndroidManifest.xml中添加读取和写入短信的权限: ```xml <uses-permission android:name="android.permission.READ_SMS"/> <uses-permission android:name="android.permission.WRITE_SMS"/> ``` 然后,收集用户输入的数据,创建`ContentValues`对象,最后调用`ContentResolver`的`insert()`方法插入数据。例如: ```java ContentValues values = new ContentValues(); values.put("address", phoneStr); values.put("date", time); values.put("body", smsStr); values.put("type", typeStr); getContentResolver().insert(Uri.parse("content://sms"), values); ``` 以上就是关于Android四大组件中的ContentProvider和SharedPreferences的基本使用,以及如何插入短信的相关知识。理解并熟练掌握这些内容,对于进行Android应用开发至关重要。
剩余42页未读,继续阅读
- qq_228884712018-06-14很好的例子,值得下载。
- 粉丝: 19
- 资源: 5
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助