Android开发,关于service的常驻和共享的问题

关于service的一些问题:

  1. 在使用微信和微博时,打开android的"设置-应用-正在运行"里面,能看到微信和微博两个应用同时在运行,里面有各自的进程和服务。请问这是如何实现的?

  2. 现在想给自己的应用加上推送服务,把服务以独立进程运行起来了。可是开启应用后,点主菜单的应用列表键,显示的应用滑动关闭后,应用的全部进程就被杀死了。(如图,PushTest按住往箭头方向滑动就关闭了,进程全部被杀死)请问进程如何能不被杀死呢?顺便问一下,红色框里的按键叫什么键?

  3. 多个APP是否可以共享service?想多个APP共享一个service的推送功能,这样就只需要维持一个长链接和其相关的通信心跳了。目前service是做成单独的jar包导入其他APP工程的,是否需要把service做成单独的APP?

图:
两个应用
Android截图

回答:

  1. 在AndroidManifest中声明Activity或者Service时,定义android:process属性

    格式:android:process=":{进程名字}",这样就能运行在其他进程了

    详见:http://developer.android.com/guide/topics/manifest/service-element.html
    android:process

  2. 当把service跑在其他进程后,就可解决,方法参考1

  3. 按推荐做法的话,可以像Google提供的绝大多数服务那样,使用Content Provider,具体使用方式请自行搜索.另外,可以采用AIDL跟其他进程的Service直接进行通信,我们之前的做法会做一套序列/反序列化的东西在公共Service和其他普通app进行通信(当然也是通过AIDL).至于Service可以不用单独装,在你的业务app里捆绑一个小的Service也就可以了

以上是 Android开发,关于service的常驻和共享的问题 的全部内容, 来源链接: utcz.com/p/181133.html

回到顶部