Android:退出程序后保持Serivce开启不关闭

Android中,service的开启,默认是绑定activity的,是activity级的。

如果要实现当退出程序后,保持Service的运行,那么需要把service设置成为system级的,设置方法:
在AndroidManifest.xml中注册service时,加上属性android:process,如:

<service
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);
}


至此,当你退出程序后,service还在系统后台正常运行,目标达成。