Android ContentProvider的启动过程

ContentProvider使用步骤:

1、ContentSolver contentResolver = getContentResolver()

2、contentResolver.insert();(还有其他三种方式)

首先getContentResolver()的过程如下:

Android ContentProvider的启动过程

getContentResolver()是属于context的一个抽象方法,具体的实现在(ContextImpl)getContentSolver() 返回的是ContentSolver子类ApplicationContentResolver的对象;

其次contentResolver.insert()(其他三个方法的流程一样)的流程如下:

Android ContentProvider的启动过程


Android ContentProvider的启动过程


acquireProvider()判断provider是否已经存在了,如果存在就直接用如果不存在就在对应的应用进程去新建一个provider,新建成功之后attachInfo()->onCreate()然后发布到AMS

publishContentProviders()


参考见:http://blog.****.net/zhangyongfeiyong/article/details/52038800