2013-07-11 6 views
3

내 응용 프로그램은 지속적인 클라이언트 - 서버 통신을 기반으로합니다.안드로이드 - 지속적으로 UDP 소켓 청취

서비스 및 alarmmanager를 사용하여이를 수행하려고합니다.

DataGramSocket을 사용하여 특정 포트를 청취하기 위해 onStartCommand() 메서드에서 while 루프를 돌리고 있습니다.

내 문제는 그것이 내 배터리를 죽이는 것입니다.

지속적인 푸시 알림없이 지속적인 UDP 수신을 구현하는 더 좋은 방법이 있습니까?

감사의

답변

0

이 오래된 스레드이지만, 내 자신 질문에 대한 답변을 보면서 나는 우연히 한 이후 :

당신은 당신이 당신의 무한 루프 내부에서 무엇을하고 있는지 지정하지 않았습니다.

원칙적으로 단순히 DatagramSocket.receive()을 호출하면 소켓에서 효율적으로 대기해야합니다. 소켓에 들어오는 버퍼에 데이터가 없으면 메서드는 리소스를 낭비하지 않으면 서 차단해야합니다. 네가 한 짓이야? 코드를 게시 할 수 있습니까?