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);
}
|