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