Android中,service的开启,默认是绑定activity的,是activity级的。
如果要实现当退出程序后,保持Service的运行,那么需要把service设置成为system级的,设置方法:
在AndroidManifest.xml中注册service时,加上属性android:process,如:
<serviceandroid: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还在系统后台正常运行,目标达成。