2012-11-26 2 views
1

XMPP 서버에서 지속적으로 청취하고있는 서비스가있는 채팅 클라이언트를 개발 중입니다. 이 서비스의 아키텍처와 관련하여 몇 가지 질문이 있습니다.안드로이드 바인딩 서비스는 여러 활동을 구분할 수 있습니까?

  1. 처음으로 서비스를 실행 내가 서비스 서버 코드의 연결을 쓴 이유를 먹으 렴 때 나는에서 onCreate()를 한 번만 호출됩니다 안드로이드 개발 페이지에 서비스 클래스의 문서에 읽고 onCreate() 메소드. 괜찮습니까?

  2. 내 클라이언트 활동 내 친구의 이름 인 ListView 요소를 클릭하면 채팅 메시지를 듣고 보내는 서비스에 바인딩되는 새로운 활동이 열립니다. 특정 메시지가 어떤 활동인지를 서비스가 어떻게 구별 할 수 있는지 알고 싶습니다. 왜냐하면 내가 1 명 이상의 친구와 대화를하고 있다면 1 개 이상의 활동이있을 것이고 서비스는 어떤 메시지가 어떤 활동인지 구분해야하기 때문입니다. 이 메커니즘을 어떻게 구현할 수 있는지 알고 싶습니다. 이를위한 자습서가 있거나이 메커니즘을 구현하기 위해 무엇을해야하는지 설명하는 것이 매우 도움이 될 수 있습니다.

답변

0

괜찮습니까?

초록에서는 대답 할 수 없습니다. 이 접근법에는 명백한 오류가 없습니다.

이 메커니즘을 구현하려면 어떻게해야합니까?

정직하게 말하자면 UI는 어색합니다. 즉, 액티비티가 서비스에 리스너 또는 콜백 객체를 제공하게 할 수 있습니다.이 객체는 메시지를 해당 액티비티로 다시 라우트하는 데 사용됩니다.

+0

UI가 어색하게 들리면 내가 설명한 시나리오를 구현하는 가장 좋은 방법이 될 수 있을까요? 당신의 대답에서 기대할 수있는 것은 활동에서 메시징 채팅을하는 것이 좋지 않다는 것입니다. 그것을 구현하는 최선의 방법이 무엇인지 알려주십시오. – Dennis

+0

@Dennis : 단일 활동이 있습니다. 'ViewPager'에서 호스팅되는 채팅 당 하나의 프래그먼트를 사용하십시오. 사용자는 단지 가로로 스 와이프하여 채팅간에 이동할 수 있습니다. 이렇게하면 서비스와의 상호 작용이 크게 단순 해집니다. – CommonsWare

+0

답변 해 주셔서 감사합니다. 나는 조각과 ViewPager에 익숙하지 않다. 그러나 나는 그들에 대해 살펴보고이 접근법을 사용하려고 노력할 것이다. 당신이 그것에 대해 읽을 수있는 좋은 링크가 있다면 알려주십시오. 그렇지 않으면 문서를 살펴 보겠습니다. – Dennis

관련 문제