Android一直在后台运行,需要使用service来实现,Android中,当Service被kill后,如果重启需要使用BroadcastReceiver来实现,即广播接收者,例如利用BroadcastReceiver注册网络广播或者开关机广播,当接收到广播后直接启动service,这样就可以保证service被kill后,自动启动。
实现代码:
1.在配置文件AndroidManifest.xml中向系统注册BroadcastReceiver
2.需要添加相应权限
3.在Receiver中就可以添加开机,或者网络状态改变后需要进行的操作
public class BootCompletedReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
}
}
4.执行操作,Intent intent = new Intent(context,Service.class); context.startService(intent); 这样即可开机,或者网络状态改变后启动Service了。
设置为前台进程,也就是下面的1
1、foreground process
正处于activity resume状态
正处于bound服务交互的状态
正处于服务在前台运行的状态(StartForeGround()被调用)
Service生命周期正在被执行(onCreate(),onStart(),onDestroy())
BroadcastReceiver正在执行onReceive()方法
杀死foreground需要用户响应,因为这个安全优先级是最高的
2、visible process
3、Service process
4、background process
5、empty process