android service 之 Binder

1,创建MusicPlayService继承Service

public class MusicPlayService extends Service{
   
}

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

 public final class Mybinder extends Binder{
  public MusicPlayService getService()
  {
   return  MusicPlayService.this;
  }
 }

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

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

4,重写onCreate()

 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

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的实例对象

 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()方法中解除绑定

 protected void onDestroy() {
  // TODO Auto-generated method stub
  super.onDestroy();
  unbindService(conn);
 }

转载于:https://my.oschina.net/u/2393951/blog/486332

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值