Android后台服务保活:
本来单独使用startService启动的service,在“正在运行”的服务里面点击“停止”按钮之后,服务会调用onDestroy,然后在这个调用里面发送intent重启服务,
本来单独使用startService启动的service,在“正在运行”的服务里面点击“停止”按钮之后,服务会调用onDestroy,然后在这个调用里面发送intent重启服务,
@Override
public void onDestroy() {
super.onDestroy();
Intent intent = new Intent(getApplicationContext(),xxx.class);
startService(intent);
}
以上使用没有问题。但是,当加入bindService和startService混用以后,在“正在运行”的服务里面点击“停止”按钮之后,服务的onDestroy并没有被调用。造成,服务被杀死没有办法重启,而保活失败。
调用代码如下:
private void startService(int uid) {
Intent intent = new Intent(this, Service.class);
startService(intent);
bindService();
}
private void bindService() {
Intent intent2 = new Intent(this, Service.class);
bindService(intent2, mServiceConnection, Context.BIND_AUTO_CREATE);
}
查找了几片博客,只是说,startService和bindService会出现这个onDestroy不被调用的情