서비스는 모두 및 입니다. 유형 (정의 : here)입니다. 무한대로 실행되기 시작하면 별개의 응용 프로그램이 바인드됩니다.이 응용 프로그램이 소멸되면 onDestroy
메서드에서 unbindService
이 호출됩니다.서비스가 활동이 종료되었음을 어떻게 감지 할 수 있습니까?
서비스가이 응용 프로그램이 완료되었음을 감지해야합니다. 모든 클라이언트가 서비스에 의해 게시 된 특정 인터페이스에서 연결을 끊었을 때 이라는 onUnbind 메서드를 읽었습니다. 그러나 모든 클라이언트의 연결이 끊어지면 연결을 끊을 필요가 없습니다. 가능한가?
폐쇄 중 (onDestroy
메서드 내에서) 응용 프로그램이 서비스에 바인딩 된 사실을 활용하여 메시지를 보낼 수 있다고 생각했습니다. 나중에 다음과 같이 unbindService
메서드를 호출해야합니다. 이런 식으로
// method of the application
@Override
public void onDestroy() {
super.onDestroy();
service.closed(); // service is defined by IService.aidl
unbindService(...);
}
서비스 (service.closed()
방법)에 마지막 메시지를 보내 다음 서비스 바인딩을 해제 할 응용 프로그램. 올바르게 작동할까요? 메시지가 대상에 도착했을 때 service.closed()
메서드가 반환합니까? 또는 unbindService
메서드를 다음 번 호출로 인해 메시지가 배달되지 않을 수 있습니까?
좋아요! 제대로 작동합니다! – enzom83