请问一下:android中service 和 application 的关系

我碰到情况如下:Android中,假设已退出应用,该应用有一个独立守护的后台服务叫 :remote service1(:remote前面的冒号是在AndroidManifest.xmlserivceandroid:process的值,加:就代表该service是一个独立的进程),它去启动该应用的一个 service2(该service 没有加 :) ,同时这个service2 想要调用 application 中的方法,我想问这个 service2application 的关系是怎样的?

疑惑1. 是不是只要service2 启动,application 就也启用了,application 中的一些全局变量都可用吗?
疑惑2. 如果application 可用,application 中又启动另一个 :remote service3,那 service3 可用吗?如何调用 service3 中的方法?
疑惑3. 如果这个时候用户打开了应用,application 是一个什么样的状态?

谢谢大家了!

阅读 9.7k
1 个回答

假设你的守护进程 确实是一个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不发生任何变化.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题