android service 之 Binder

1,创建MusicPlayService继承Service

?
1
2
3
public  class  MusicPlayService  extends  Service{
    
}

2, 在MusicPlayService中创建内部类Mybinder继承Binder

?
1
2
3
4
5
6
  public  final  class  Mybinder  extends  Binder{
   public  MusicPlayService getService()
   {
    return   MusicPlayService. this ;
   }
  }

3, 重写onBinder()方法,反回内部类Mybinder实例对象

?
1
2
3
4
  public  IBinder onBind(Intent arg0) {
   // TODO Auto-generated method stub
   return  new  Mybinder();
  }

4,重写onCreate()

?
1
2
3
4
5
6
7
  public  void  onCreate() {
   // TODO Auto-generated method stub
   Toast.makeText( this "MusicSevice onCreate()"  , Toast.LENGTH_SHORT).show();
         Log.e( "test" "--->onCreate()" );
         //musicplay=BackgroundMusicPlay.getBackgroundMusicPlay(this);
         super .onCreate();
  }

5,在activity中绑定service

?
1
2
3
4
5
6
MusicPlayService service; //声明服务对象 
//绑定服务
Intent intent2= new  Intent(ShorMusicPlay. this , MusicPlayService. class );
bindService(intent2, conn, BIND_AUTO_CREATE);
//调用服务,通过第6步中的 service=((Mybinder)arg1).getService();得到实例对象
service.playMusic(); //playMusic可自行在MusicPlayService中添加

6,在ServiceConnection的onServiceConnected得到MusicPlayService的实例对象

?
1
2
3
4
5
6
7
8
9
10
11
12
13
  private  ServiceConnection conn= new  ServiceConnection() {
   @Override
   public  void  onServiceConnected(ComponentName arg0, IBinder arg1) {
    // TODO Auto-generated method stub
    Log.e( "test" " on  Service  Connected" );
    service=((Mybinder)arg1).getService(); //得到MusicPlayService实例对象
   }
   @Override
   public  void  onServiceDisconnected(ComponentName arg0) {
    // TODO Auto-generated method stub
    Log.e( "test" " on  Service   Disconnected" );
   }
  };

7,在onDestroy()方法中解除绑定

?
1
2
3
4
5
  protected  void  onDestroy() {
   // TODO Auto-generated method stub
   super .onDestroy();
   unbindService(conn);
  }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值