2012-11-08 2 views
0

SMS 수신시 카운터를 수신하고 증가시키는 다음 코드가 앱에 있습니다. 단 하나의 SMS를 (SMS 메시지는 매우 짧은 경우에도) 보낼 때Blackberry SendListener가 여러 번 호출되었습니다.

SendListener smsListener = new net.rim.blackberry.api.sms.SendListener() { 

     public boolean sendMessage(Message message) { 
      ++smsCount; 
      return true; 
     } 
    }; 

그러나 어떤 이유로 sendMessage 방법은 여러 번 호출 (일반적으로이 3 배).

왜 이런가요? 이 문제의 해결 방법이 있습니까?

+0

여러 번 청취자를 추가했을 가능성이 있습니다. 세 개의 리스너 인스턴스가 있습니다. –

+0

그게 내가 생각한 것 같아요. 나는 하나만 가지고 있고, 여러 번 호출되고 있습니다. – Cemre

+0

메시지가 실제로 얼마나 오래 있는지 확인하십시오. 일부 문자 인코딩은 SMS 최대 길이를 줄이므로 원본 메시지는 조각화되어야하며 각 부분은 단일 메시지로 전송됩니다. –

답변

2

bb dev 포럼에서이 문제에 대한 언급을 찾지 못했습니다. Emmanuel이 청취자를 여러 번 등록 할 것을 제안했듯이. 이 스레드를 검토하십시오 :

http://supportforums.blackberry.com/t5/Java-Development/sendListener-sms-and-folder-listner-invalk-multiple-times/m-p/1978915/highlight/true#M211297

+0

정말 고마워요. 실제로 많은 도움이되었습니다. 리스너를 한 번 이상 추가하지 않도록 런타임 객체를 플래그로 사용했습니다. 문서가이 양식만큼 상세했으면 좋겠습니다. 문서에서는, 청취자 오브젝트가 벌써 존재하고 있으면, 그 오브젝트가 재차 추가되지 않기 때문에, 복수 번 추가하는 것이 아니라고 생각한다고 실제로 말하고 있습니다. – Cemre

관련 문제