영어로는 좋지 않지만 좋은 방법으로 문제를 설명하려고합니다.
Android, 서비스 연결 해제 및 onService 연결 해제 문제
그래서, 문제는 : 나는 로컬 서비스
2) 나는 그것을 시작하고 다음에 바인딩이
1). 3) 해당 서비스를 닫을 때 문제가 나타납니다. onServiceDisconnected 메서드의 구현에서 ServiceConnection이 호출되지 않습니다. 설정에서 수동으로 닫거나 unbindService, stopService 또는 unbindService와 stopService를 함께 사용하는 경우 - onServiceDisconnected은 여전히 호출되지 않습니다. 내가 뭘 잘못하고 있니?
짧은 코드는 다음과 같습니다 :
protected ServiceConnection mServerConn = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName name, IBinder binder) {
Log.d(LOG_TAG, "onServiceConnected");
}
@Override
public void onServiceDisconnected(ComponentName name) {
Log.d(LOG_TAG, "onServiceDisconnected");
}
}
public void start() {
// mContext is defined upper in code, I think it is not necessary to explain what is it
mContext.bindService(i, mServerConn, Context.BIND_AUTO_CREATE);
mContext.startService(i);
}
public void stop() {
mContext.stopService(new Intent(mContext, ServiceRemote.class));
mContext.unbindService(mServerConn);
}
나는 극단적 인 상황이라고합니다 안드로이드 2.2
감사합니다. 나는 그것이 버그 또는 그 밖의 다른 것이라고 생각하지 않았습니다. 그래서 onServiceDisconnected()의 needle 데이터 (코드)를 stop()에 복사했습니다. 이제 내가 원하는대로 작동합니다. – UAS
이것이 맞습니다. 그러나 unbindService (connection)을 호출 한 후에도 myservice (service) 클래스에있는 public 메소드를 호출 할 수 있습니다. 그래서, unbindservice() 메소드로는 아무런 의미가 없다. ??? 그러나 서비스는 onDestroy()를 호출하여 소멸됩니다. – yokks