public static final void main(String[] args) { // ...... ActivityThread thread = new ActivityThread(); thread.attach(false); Looper.loop(); // ...... }
mgr.attachApplication(mAppThread);
List providers = generateApplicationProvidersLocked(app);
随后,通过下面的方法调用,返回到应用程序的进程空间,参数中包含了上面获得的providers。此处的thread实际上就是应用端的ApplicationThread对象。
thread.bindApplication(processName, app.instrumentationInfo != null ? app.instrumentationInfo : app.info, providers, app.instrumentationClass, app.instrumentationProfileFile, app.instrumentationArguments, app.instrumentationWatcher, testMode, isRestrictedBackupMode, mConfiguration, getCommonServicesLocked());
List<ProviderInfo> providers = data.providers; if (providers != null) { installContentProviders(app, providers); }
IContentProvider cp = installProvider(context, null, cpi, false);
final java.lang.ClassLoader cl = c.getClassLoader(); localProvider = (ContentProvider)cl. loadClass(info.name).newInstance(); provider = localProvider.getIContentProvider(); // ...... // Cache the pointer for the remote provider. String names[] = PATTERN_SEMICOLON.split(info.authority); for (int i=0; i<names.length; i++) { ProviderRecord pr = new ProviderRecord(names[i], provider, localProvider); try { provider.asBinder().linkToDeath(pr, 0); mProviderMap.put(names[i], pr); } catch (RemoteException e) { return null; } }上面的installContentProviders方法执行完成之后,会调用ActivityManagerService.publishContentProviders方法,将provider注册到ActivityManagerService中,方便其它应用进程获取。这里面有两个参数,一个是ApplicationThread对象,另一个是provider实例信息。
try { ActivityManagerNative.getDefault().publishContentProviders( getApplicationThread(), results); } catch (RemoteException ex) { }
相关阅读 android studio如何导入项目 android studio导入项目教程android studio怎么删除项目 android studio删除项目方法android studio怎么生成apk android studio打包apk教程android studio如何导入jar包 android studio导入jar包教程android studio快捷键如何设置 android studio快捷键设置方法android studio快捷键大全 android studio有哪些快捷键android8.1新特性有哪些 android8.1新特性介绍android8.0和ios11哪个好 android8.0和ios11功能对比评测
热门文章 Aegisub教程及特效代码动态磁盘无效怎么办 动网易uu加速器怎么样?网汉王pdf ocr怎么用?pd
最新文章
海豚蓝牙ASIO软件怎么Textify使用教程:复制
WinHex查找下载器真实下载链接方法Aegisub教程及特效代码应用adsafe净网大师怎么设置开机启动TrueCrypt使用方法及详细教程
人气排行 千月蓝牙驱动怎么用?千月驱动程序安装教程及手机搬家功能怎么用 iTools手机搬家使用教程蛤蟆吃联机详细图文教程汉王pdf ocr怎么用?pdf转txt图文教程Aegisub教程及特效代码应用“无法通过windows installer服务安装此安装网易uu加速器怎么样?网易uu网游加速器使用图UltraEdit-32自动换行设置方法
查看所有0条评论>>