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条评论>>