2010-07-26 11 views
0

이 내가안드로이드 - 간 스레드 통신 및 네트워크 소켓

1) 내 주요 응용 프로그램/활동 네트워크 메시지 (TCP)을들을 수있는 스레드를 시작 실현하려 노력하고 있습니다 것입니다. 하지만이 스레드가 네트워크 활동 (TCP 소켓)과 주요 활동의 메시지를 청취하기를 원합니다. 나는 네트워크 메시지를위한 소켓과 내부 메시지를위한 루퍼를 사용할 수 있는지 탐구하고있다. 나는 Looper가 막히는 것처럼 작동하지 않을 것이라고 생각한다.

유닉스에서는 다른 소켓의 메시지를 듣기 위해 소켓을 폴링하도록 선택했습니다. 어떻게 달성 할 수 있는지 조언 해주세요. Android에서 기능을 선택 하시겠습니까?

감사합니다. Manu

답변

0

당신이 서비스의 네트워크 메시지를 듣고 있다고 가정하면 활동과 서비스 사이에서 의사 소통 할 수 있습니다.

당신은 두 개의 네트워크 스레드를 가질 수

+0

Flurin : 답장을 보내 주셔서 감사합니다. 네트워크 메시지를 처리하기 위해 스레드를 사용하고 있지만이 스레드는 주 활동에서도 메시지를 가져 오길 원합니다. Intents를 사용하여 내 주요 활동과 소켓 스레드간에 통신 할 수 없다고 생각합니다. 의도는 활동, 서비스, 방송 간의 의사 소통을 의미합니다. 하지만 대답은 새로운 의심을 불러옵니다. 활동이나 서비스를 시작할 때 의도를 전달할 수 있습니다. 일단 그들이 시작되면, 의도를 사용하여 그들 사이에서 어떻게 통신합니까? 들어오는 인 텐트 (브로드 캐스트 수신기 제외)를들을 수있는 'Intent listener'에 대해 알고 있습니다. – Manu

+0

Handler 클래스 사용 –

2

안드로이드 문서에 Intents and Intent Filters를 보라. 하나의 스레드는 소켓에서 대기 한 다음 메시지를 다른 네트워크 스레드로 중계합니다.이 스레드는 또한 주 스레드에서 메시지를 수신합니다. 효과적으로 새 스레드는 두 소스의 메시지를 차단 (또는 수신 대기)합니다.