音乐播放器框架
如果把播放的逻辑放到activity 不靠谱 activity在音乐播放器中只是作为界面的作用
所以控制音乐播放的逻辑 要放到service里
Activity既能控制音乐播放的逻辑 又可以实现退出activity之后service不死掉 需要使用混合方式开启
服务
混合方式开启服务
startService
bindService 一起使用 先后顺序没有要求
Activity代码
public class MainActivity extends Activity{
private MyConnectio nconn;
private MyBinder musicControl;
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//通过bind方式开启音乐播放的服务
Intent service=new Intent(this,MusicPlayerService.class);
conn=newMyConnection();
//①调用bindService
bindService(service,conn,BIND_AUTO_CREATE);
//混合方式开启服务
startService(service);
}
public void pre(Viewv){
musicControl.callPre();
}
public void play(Viewv){
musicControl.callplay();
}
public void pause(Viewv){
musicControl.callpause();
}
public void next(Viewv){
musicControl.callNext();
}
private class MyConnection implements ServiceConnection{
@Override
public void onServiceConnected(Component Namename,IBinder service){
//④service执行完onBind之后 返回值不为空 就会走这个方法 IBinder对象就
是 onBind的返回值 获取到这个对象 就可以调用它的public方法
musicControl=(MyBinder)service;
musicControl.playHiFiMusic();IServiceiservice=(IService)service;
iservice.callpause();
iservice.callpause();
}
@Override
public void onServiceDisconnected(ComponentName name){
}
}
@Override
protected void onDestroy(){
super.onDestroy();
unbindService(conn);
}
}