AdvancedAndroid icon indicating copy to clipboard operation
AdvancedAndroid copied to clipboard

AMS中缓存mProviderMap即使缓存了目标ContentProvider,还是需要判断ContentProvider是否与客户端运行中同一进程

Open rigortek opened this issue 4 years ago • 0 comments

分析得很好,只是有个地方似乎不太对,可以讨论:

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

rigortek avatar Dec 15 '20 11:12 rigortek