bindService()这行代码执行之后立刻回调onServiceConnected()吗

比如我想实现activity界面按下按钮,绑定服务并直接在服务中播放音乐,这样写是错的。

public void onClick(View v){
        switch(v.getId()){
            case R.id.play:
                Intent bindIntent = new Intent(this,PlayService.class);
                bindService(bindIntent,conn,BIND_AUTO_CREATE);//1
                playBinder.play();//2
                break;
            case R.id.pause:
                playBinder.pause();
        }
    } 

其中playBind是一个Bind子类的对象。

会先调用service的onBinder()方法,返回成功后就会调用onServiceConnected()回调函数

你可以在onServiceConnected()方法里面,得到binder对象,然后转换成playBinder对象接口,再调用playBinder.play();//2

onServiceConnected是绑定完成回调,注意完成两个字,不是马上回调,bindService可以放在生命周期里面,比如oncreate, onResume里面,点击按钮里面用playBinder的时候判断一下是否为空