1.代用bindService()方法
if(bindService==null){
Intent serviceintent=new Intent(this,MyService.class);
bindService(serviceintent,conn,Context.BIND_AUTO_CREATE);
}
bindService.init();
2.private ServiceConnection conn = new ServiceConnection() {
@Override
public void onServiceDisconnected(ComponentName name) {
// TODO Auto-generated method stub
bindService=null;//解除绑定
}
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
// TODO Auto-generated method stub
MyBinder binder = (MyBinder)service;
bindService = binder.getService();//绑定服务
bindService.init();
}
};
3.绑定service之后把service赋值给bindService对象,然后通过这个对象执行init()方法。但是程序却报错了,调试的时候居然发现无法进入服务的onCreate之类的方法,因为bindService方法会异步执行。真正判断连接是否成功的事件是ServiceConnection接口里的onServiceConnected事件,所以需要把绑定成功后的处理逻辑移到这个方法内执行,也就是连接成功之后代用bind对象方法。