我碰到情况如下:Android
中,假设已退出应用,该应用有一个独立守护的后台服务叫 :remote
service1(:remote
前面的冒号是在AndroidManifest.xml
中serivce
中android:process
的值,加:
就代表该service
是一个独立的进程),它去启动该应用的一个 service2
(该service
没有加 :
) ,同时这个service2
想要调用 application
中的方法,我想问这个 service2
和 application
的关系是怎样的?
疑惑1. 是不是只要service2
启动,application
就也启用了,application
中的一些全局变量都可用吗?
疑惑2. 如果application
可用,application
中又启动另一个 :remote service3
,那 service3
可用吗?如何调用 service3
中的方法?
疑惑3. 如果这个时候用户打开了应用,application
是一个什么样的状态?
谢谢大家了!
假设你的守护进程 确实是一个Remote Service(看manifest里service的process配置)
Remote Service是独立进程的,所以
疑惑1. 是不是只要service2 启动,application 就也启用了,application 中的一些全局变量都可用吗?
A: 是,可用.
疑惑2. 如果application 可用,application 中又启动另一个 :remote service3,那 service3 可用吗?如何调用 service3 中的方法?
A: service3不可以使用Application里的全局变量.Remote Service是独立进程的,不可以调用application方法,但是remote service是需要bind的,bind以后你可以通过AIDL调用remote service的方法
疑惑3. 如果这个时候用户打开了应用,application 是一个什么样的状态?
A: 你启动service2的时候,application已经启动并存在了,这时打开应用,application不发生任何变化.