【发布时间】:2013-07-16 19:58:42
【问题描述】:
我有 2 个活动,A 和 B。服务从 B 开始,代码如下:
startService(new Intent(this, PlayerService.class));
Intent connectionIntent = new Intent(this, PlayerService.class);
bindService(connectionIntent, mp3PlayerServiceConnection, Context.BIND_AUTO_CREATE);
private ServiceConnection mp3PlayerServiceConnection = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName arg0, IBinder binder) {
mp3Service = ((LocalBinder) binder).getService();
Thread t = new Thread() {
public void run() {
mp3Service.playSong(getApplicationContext(),url);
}
};
t.start();
}
@Override
public void onServiceDisconnected(ComponentName arg0) {
}
};
当我在进行活动 A(B 已关闭,但音乐播放)时,我需要有可能关闭服务。如何从 A onDestroy() 调用 StopService?需要我解绑吗,如果需要,如何解绑,在哪里解绑?
简单地输入stopService(new Intent(this,PlayerService.class)); 会导致错误:Activity B has leaked Service connection ... 原本绑定在这里。 (但是B已经关闭了)
【问题讨论】:
标签: android service android-activity unbind