安卓Service在关闭进程后继续运行

有什么办法可以让安卓Service在关闭进程后继续运行?最好不要是重启Service

我也研究过一段时间这个问题。自认为开发者开发的应用不太可能实现这个功能 。

Android中,service的开启,默认是绑定activity的,是activity级的。
如果要实现当退出程序后,保持Service的运行,那么需要把service设置成为system级的,设置方法:
在AndroidManifest.xml中注册service时,加上属性android:process,如:
android:name="com.jansun.pushnotification.PushNotificationService"
android:enabled="true"
android:process="system"
/>
另外,还要在启动service时,加入FLAG_ACTIVITY_NEW_TASK标签,如:
public static void actionStart(Context ctx) {
//System.out.println("---- Notification service started!");
Intent i = new Intent(ctx, PushNotificationService .class);
i.setAction(ACTION_START);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
ctx.startService(i);
}

aidl接口,然后在AndroidManifest.xml文件里面设置server为子进程
android:process=":zixiancheng"/>

如果是通过startService()方式来启动的Service,那么是不容易被杀死的,即使在进程列表中杀死进程,它依然会重启.只有调用Service的stop方法后都会停止 .
不琮还有一种方法可以让进程开启后在进程列表中无法查看,没错!就是使用JNI在c文件中fork一个进程,这个进行只有在linux中能看到.想到这里,我们就有
一个好的想法了,可以在c中fork出进程后,在这个进程里面监听Service所在的进程,如果进程被干掉或者被卸载了,那么我们就在之前fork出来的进程中再次
启动这个Service,是不是很流氓,哈哈哈.怎么?不会Jni?没关系,给 我就好了