Android Application多次创建问题

本文探讨了在Android应用中,Service与Application间因android:process属性设置不当导致的进程隔离问题。当Service指定独立进程时,Application会被多次实例化,造成Service与Activity引用不同Application实例的困扰。

一、背景

    写了一个测试服务,在Service中会用到Application中的一个变量,变量值在Service的OnCreate中赋值。

二、 问题

    测试服务的时候发现问题,在Activity中使用Application中的变量,一直为空。以为是Service没执行,打Log分析后发现问题:Service会执行,Application中的变量会赋值;问题是Application会创建两次,Service和Activity用到的不是同一个Application,引发问题。

三、 原因

    接下来就是分析为什么Application会创建两次。最后发现原因是清单文件Service中的android:process属性造成。

四、 android:process属性

   正常情况下,一个apk启动后只会运行在一个进程中,其进程名为apk的包名,所有的组件都会在这个进程中运行。

   如果某些组件需要运行在单独的进程中,就需要用到android:process属性,使用后,Application会多次重建。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值