美文网首页
关于Android中开子进程

关于Android中开子进程

作者: AirLan | 来源:发表于2017-08-24 23:00 被阅读34次

    我们知道在Android中,经常看到AndroidManifest.xml文件中有一些主件会添加一个process属性,大多数都是在service组件中添加的,例如:

            <service
                android:name="com.ebanswers.sample.GuardService"
                android:process=":guard" />  
    

    其中gurad可以随意起名字,前面的冒号则表示该guard进程是主进程的一个子进程,一般来说主进程的进程名即为应用的包名。例如当前应用包名为:com.ebanswers.sample那么GuardService所在的进程名则为:com.ebanswers.sample:guard。之所以开一个子进程大部分原因主要是尽量防止该组件被杀,这也是为什么大部分用到这个属性的组件会是service。当然防止service被杀的方法有很多,例如:开启前台服务,双进程互相监听,利用广播等等这里就不一一介绍了。 可以看到其实很多sdk也都用到了这个属性,诸如:极光推送,百度定位,喜马拉雅等等,所以还是有必要了解一下。
    值得注意的一点就是如果你的应用继成了Application来实现自己的Application的话,那么对应的该Application的onCreate方法则会走1+n次其中n代表了你开了几个子进程,所以在onCreate方法中做一些初始化工作的时候特别要注意这一点。

    相关文章

      网友评论

          本文标题:关于Android中开子进程

          本文链接:https://www.haomeiwen.com/subject/zwdydxtx.html