AdvancedAndroid
AdvancedAndroid copied to clipboard
AMS中缓存mProviderMap即使缓存了目标ContentProvider,还是需要判断ContentProvider是否与客户端运行中同一进程
分析得很好,只是有个地方似乎不太对,可以讨论:
ActivityManagerService对于ContentProvider启动请求的处理.png 时序中:
AMS中缓存变量mProviderMap即使缓存了目标ContentProvider,还是需要判断ContentProvider是否与客户端运行中同一进程 中,如果ContentProvider与客户端进程可以运行中同一进程,即android:multiprocess为true,客户端进程还是需要实例化自己的ContentProvider。
场景是:ContentProvider所在APK进程CRUD调用,肯定会启动ContentProvider,它将会被缓存到AMS的mProviderMap, 此时另一个APK进程启动,判断android:multiprocess为true,即ContentProvider与客户端运行中同一进程中,此时该APK所在应用需要实例化一份自己的ContentProvider