首页 > 代码库 > android 应用内多进程

android 应用内多进程

做 android 1 年多今天发现 一个应用内也可以有多个进程的, 在这里记录一下

android 默认只有一个主进程, 4 大组件都在同一个主进程中运行

但 service、broadcast、activity  provider 都可以通过指定  android:process 来启动一个新进程运行

项目中引用了一个第三方库,在退出应用的时候调用了 android.os.Process.killProcess(android.os.Process.myPid())  kill 掉了当前进程

而我们集成了极光推送导致极光推送的 service 也没了, 应用退出后就收不到推送了

怎么办呢,  把极光推送的 JPushService 放到一个单独的进程中去就行了,  上面的代码只会  kill 掉主进程, 不会杀死其它的进程

<serviceandroid:name="cn.jpush.android.service.PushService"android:enabled="true"android:process=":JPushService" ><intent-filter><action android:name="cn.jpush.android.intent.REGISTER" /><action android:name="cn.jpush.android.intent.REPORT" /><action android:name="cn.jpush.android.intent.PushService" /><action android:name="cn.jpush.android.intent.PUSH_TIME" /></intent-filter></service><serviceandroid:name="cn.jpush.android.service.DownloadService"android:enabled="true"android:process=":JPushService" ></service>

 打开 DDMS 可以看到我们的应用现在有  2  个进程在运行了, back 键退出 主进程 销毁,  JPushService 所在的进程还在

 

android 应用内多进程