Android中的四大核心组件
ContentProvider
1、ContentProvider是什么?
1)Android核心组件之一(生命周期方法)
2)Android中的内容提供者
2、对象的应用场合
ContentProvider主要用于实现应用程序私有数据的对外共享
通过ContentProvider对象可以实现跨进程(不同APP)的数据访问
例如:
微信访问手机联系人数据
音乐播放器访问本地媒体库(图片,音频,视频)
3、ContentProvider对象的应用
1)编写(继承ContentProvider对象,重写相关方法)
2)注册(在AndroidManifest.xml中声明)
3)访问(借助ContentResolver通过uri访问ContentProvider)
说明:
1)ContentProvider的编写不作为重点(需掌握基本流程)
2)重点掌握ContentProvider让对象的访问流程
对ContentProvider的编写有浓厚兴趣者可参考APIDemos,NotePad
4、ContentProvider对象的访问案例
1)访问媒体库信息
a)ContentResolver
b)Uri
2)访问联系人信息
5、CursorLoader对象的应用
CursorLoader对象在加载数据时,会默认启动的异步任务在工作线程加载数据,数据加载完成自动回调相关方法,然后我们可以在对应的方法中直接更新UI
应用步骤:
1.初始化Loader对象
2.执行查询(Loader)动作
3.更新UI
4.销毁资源
相关API
1)LoaderManager(Loader对象的管理者)
2)LoaderCallback(回调接口,处理数据)
3)CursorLoader(负责Cursor对象的加载)
相关案例
1)加载练习人相关信息(显示在ListView上)
2)加载媒体库图片信息(显示在GridView上)
a)媒体库中图片信息的URI(Media)
b)媒体库中图片信息相关字段(列名,例如data)
c)启动CursorLoader如何加载?
FAQ:使用CursorLoader的优势?
1)异步加载(底层会启动线程加载数据)
2)防止内存泄漏(CursorLoader中不会直接引用View)
3)CursorLoader中的启动的线程会在activity销毁时停止
4)CursorLoader对象对数据提供了缓存功能(假如cursor关联的数据没有变化,在activity的配置信息发生变化时,不会从数据库加载数据,而是)