Fabriqué en France Drapeau français

android messenger 예제

이 안드로이드 서비스 메신저 튜토리얼에서, 주의해야 할 핵심 포인트 중 하나는, 안드로이드 메시지가 생성 될 때, replyTo 매개 변수가 사용된다는 것입니다. 이 매개 변수는 회신 메시지를 보낼 메신저를 지정합니다. 이 매개 변수는 프로세스를 단순화합니다. 따라서 위의 코드에서 새로 만든 이 메시지가 서비스에서 수신되면 이 활동의 메신저에 회신됩니다. Android에서는 프로세스 간 통신을 두 가지 방법으로 수행할 수 있습니다. 와우! 우리는 단지 안드로이드에서 프로세스 경계를 넘어 메시지를 보내는 방법을 배웠습니다. 아시다시차면 클라이언트에서 서비스를 호출하는 방법은 없지만 클라이언트는 서비스의 처리기 구현에 메시지를 배달합니다. 서비스가 모든 클라이언트에서 언바운드되면 Android 시스템은 서비스를 파괴합니다(onStartCommand()로 시작되지 않은 경우). 따라서 순전히 바인딩된 서비스인 경우 서비스의 수명 주기를 관리할 필요가 없습니다. 바인딩된 서비스는 클라이언트-서버 인터페이스의 서버입니다. 이를 통해 다른 구성 요소가 서비스에 바인딩하고, 요청을 보내고, 응답을 수신하고, IPC(프로세스 간 통신)를 수행할 수 있습니다.

여러 클라이언트가 서비스에 동시에 연결할 수 있습니다. 바인딩된 서비스는 일반적으로 다른 응용 프로그램 구성 요소를 제공하고 백그라운드에서 무기한 실행되지 않는 동안에만 작동하지만 클라이언트가 바인딩할 수 있는 방식으로 무한정 실행 중인 서비스를 구현할 수도 있습니다. 서비스 수명 주기에 대한 자세한 내용은 바인딩된 서비스의 수명 주기 관리에 대한 공식 Android 설명서를 참조하십시오. 응용 프로그램 구성 요소(클라이언트)는 bindService()를 호출하여 서비스에 바인딩할 수 있습니다. 그런 다음 Android 시스템은 서비스와 상호 작용하기 위해 IBinder를 반환하는 서비스의 onBind() 메서드를 호출합니다. 당신은이 안드로이드 바인딩 서비스가 자신의 메신저를 가지고 있음을 관찰 할 수있다, mMessenger. 이 메신저는 이 서비스의 처리기 개체즉, BoundServiceHandler를 통해 인스턴스화됩니다. 기본적으로 이 바인딩된 서비스 처리기는 수신된 모든 메시지를 처리하거나 회답하는 처리기입니다. 우리가 인터넷에 연결할 수 있도록 안드로이드에 대한, 우리는 매니페스트 / AndroidManifest.xml 파일에 인터넷 권한을 추가해야합니다 :이 안드로이드 서비스 메신저 튜토리얼에서,이 레이아웃이 팽창 될 것이다 활동을 정의 할 수 있습니다 안드로이드 서비스 메신저와 구속될 것이다: 바운드 된 서비스의 모든 마법이 시작되고 이 활동에서 끝난다. 이 활동에서 서비스가 먼저 시작된 다음 이 활동 자체에 바인딩됩니다. 이렇게하면 활동이 백그라운드로 이동하거나 파괴되는 경우 Android 시스템이이 바인딩 된 서비스를 파괴하지 못하게됩니다.

또한 이 서비스가 바인딩될 때 즉 onServiceConnected 메서드가 호출될 때 메신저 개체가 인스턴스화되는 것을 관찰할 수 있습니다.

MENU