ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
第一、二、三条分析路线都将以下面这段示例为参考。 **MediaProvider客户端示例** ~~~ void QueryImage(Context context){ //①得到ContentResolver对象 ContentResolver cr = context.getContentResover(); Uri uri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI; //②查询数据库 Cursorcursor = MediaStore.Images.Media.query(cr,uri,null); cursor.moveToFirst();//③移动游标到头部 ......//从游标中取出数据集 cursor.close();//④关闭游标 } ~~~ 先介绍一下这段示例的情况:客户端(即运行本示例的进程)查询(query)的目标ContentProvider是MediaProvider,它运行于进程android.process.media中。假设目标进程此时还未启动。 本节的关注点集中在: - MediaProvider所在进程是如何创建的?MediaProvider又是如何创建的? - 客户端通过什么和位于目标进程中的MediaProvider交互的? 先来看第一个关键函数getContentResolver。