【Android】- bindService 之 leaked ServiceConnection错误

【Android】- bindService 之 leaked ServiceConnection错误

原因在于,绑定服务时,在activity退出时,没有解除绑定导致以上错误。

因此需要在activity销毁时,及时解除绑定:

private void initData() {
    intent = new Intent();
    intent.setClass(this,MusicBindService.class);
    bindService(intent,conn,BIND_AUTO_CREATE);
}
ServiceConnection conn = new ServiceConnection() {
    @Override
    public void onServiceConnected(ComponentName componentName, IBinder iBinder) {
        MusicBindService.MyMusicService myMusicService = (MusicBindService.MyMusicService) iBinder;
        musicService = myMusicService.getMusicService();

    }

    @Override
    public void onServiceDisconnected(ComponentName componentName) {
        musicService.onUnbind(intent);
    }
};
/*解除绑定*/
@Override
protected void onDestroy() {
    super.onDestroy();
   unbindService(conn);
}