Android应用程序组件Content Provider的启动过程源代码分析(2)
16lz
2021-01-23
Step 5.ActivityThread.getProvider 这个函数定义在frameworks/base/core/java/android/app/ActivityThread.java文件中:
- publicfinalclassActivityThread{
- ......
- privatefinalIContentProvidergetExistingProvider(Contextcontext,Stringname){
- synchronized(mProviderMap){
- finalProviderClientRecordpr=mProviderMap.get(name);
- if(pr!=null){
- returnpr.mProvider;
- }
- returnnull;
- }
- }
- ......
- privatefinalIContentProvidergetProvider(Contextcontext,Stringname){
- IContentProviderexisting=getExistingProvider(context,name);
- if(existing!=null){
- returnexisting;
- }
- IActivityManager.ContentProviderHolderholder=null;
- try{
- holder=ActivityManagerNative.getDefault().getContentProvider(
- getApplicationThread(),name);
- }catch(RemoteExceptionex){
- }
- IContentProviderprov=installProvider(context,holder.provider,
- holder.info,true);
- ......
- returnprov;
- }
- ......
- }
- publicfinalclassActivityManagerServiceextendsActivityManagerNative
- implementsWatchdog.Monitor,BatteryStatsImpl.BatteryCallback{
- ......
- publicfinalContentProviderHoldergetContentProvider(
- IApplicationThreadcaller,Stringname){
- ......
- returngetContentProviderImpl(caller,name);
- }
- ......
- }
更多相关文章
- 自定义圆角button上下间距问题
- Android Wifi模块相关常量定义.
- C语言函数以及函数的使用
- Android 自定义ProgressBar--进度自己设置图片
- Android_自定义View拖拽重绘
- android 自定义具有反弹效果的ScrollView
- android自定义对话框工具类
- 自定义dialog的style属性说明
- TabHost自定义标签页(二)