Android 多进程multiprocess 详解

来源:互联网 发布:能找主奴的软件 编辑:程序博客网 时间:2024/06/05 22:49

转自:http://blog.csdn.net/wangbaochu/article/details/52042926

大家在使用ContentProvider的时候有没有发现android:multiprocess 和 android:process 这两个标签:

[html] view plain copy
  1. <provider  
  2.     android:name="com.test.MyProvider"  
  3.     android:authorities="com.test.provider.authority"  
  4.     android:multiprocess="true"  
  5.     android:process=":core" />  

我们知道默认不指定android:process的话,provider组件所在的进程名就是包名,multiprocess默认为false,则provider会随着应用启动的时候加载。如果对provider指定android:process和android:multiprocess,那么会产生如下几种情况:

1. android:process=":fore",android:multiprocess="true":provider不会随应用的启动而加载,当调用到provider的时候才会加载,加载时provider是在调用者的进程中初始化的。这时候可能定义provider的fore进程还没有启动。

2. android:process=":fore"(android:multiprocess默认情况下为"false"):provider不会随应用的启动而加载,当调用到provider的时候才会加载,加载时provider是在“fore”进程中初始化的。

3. android:multiprocess="true":provider会随着应用启动的时候加载,加载时provider是在应用默认主进程中初始化的。对于android:multiprocess=true,意味着provider可以多实例,那么由调用者在自己的进程空间实例化一个ContentProvider对象,此时定义ContentProvider的App可能并没有启动。

4. android:multiprocess="false":provider会随着应用启动的时候加载,加载时provider是在应用默认主进程中初始化的。对于android:multiprocess=false(默认值),由系统把定义该ContentProvider的App启动起来(一个独立的Process)并实例化ContentProvider,这种ContentProvider只有一个实例,运行在自己App的Process中。所有调用者共享该ContentProvider实例,调用者与ContentProvider实例位于两个不同的Process。

总之,android:multiprocess 应该理解为:是否允许在调用者的进程里实例化provider,而跟定义它的进程没有关系。

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 微信表情少了怎么办 蜂鸟众包健康证怎么办 百度外卖送错了怎么办 脸上的疤变黑了怎么办 唱吧不能凳入怎么办 唱吧密码忘了怎么办 yy违规b类z怎么办 奇云2中控台褪色怎么办 uv打印错一个字怎么办 多肉砍头后的桩怎么办 哥哥太爱我怎么办电影 吃了减肥药怀孕怎么办 win10玩不了qq堂怎么办 电脑只有c盘了怎么办 美拍直播没人看怎么办 洛神花孕妇喝了怎么办 黑枸杞泡水褐色怎么办 红薯吃多了胃胀怎么办 在赌场掉了筹码怎么办? 到缅甸被绑架了怎么办 在淘宝不给退货怎么办 鞋上魔术贴坏了怎么办 手机支架不粘了怎么办 赌博把房子输了怎么办 当发现老公有外遇时怎么办 led灯带中间不亮怎么办 飘窗的天花板凸怎么办 一受委屈就爱哭怎么办 6岁儿童叛逆期怎么办 孩子高一了厌学怎么办 除上有肥胖纹怎么办 6岁不爱写作业怎么办 初中孩子不爱写作业怎么办 孩子上课走神写作业慢怎么办 孩子作业写得慢怎么办 4岁宝宝不写作业怎么办 小孩作业写得慢怎么办 3岁宝宝不写作业怎么办 小孩不写作业怎么办呀 作业没写完的人怎么办? 孩子不写作业家长该怎么办