系统如何确定使用哪个ContentProvider?
根据androidmainfest.xml中的android:authorities决定,所以该名字必须全局唯一的
一个ContentURI的组成:
协议头:Content://
认证域 authorities
路径: datapath
Content:// authorities/datapath
Datapath可以这么理解:客户端希望获取的数据可能有不同的种类,根据datapath来判断客户端到底需要哪种数据
Eg:
Content://mms-sms/convensation 获取短彩列表
Content://mms-sms/convensation/id 获取某个会话
Content://mms-sms/draft 获取草稿箱
……
用UriMatcher来解析客户端传入的URI,获取datapath
首先在provider启动的时候进行初始化,
UriMatcher.add(authorities, datapath,return_code)
使用时:
ReturnCode =UriMatcher.match(uri)
获得初始化时注册的返回码,然后使用switch进行数据分类处理