3

내 응용 프로그램에서 사용자 지정 인 텐트를 사용하기 시작했는데 약간의 문제가 발생했습니다.Android - 인 텐트가 어떻게 증가하나요?

사용자 정의 인 텐트를 보낼 때 브로드 캐스트 수신기를 등록 할 때 아무런 문제가 없습니다.

그러나 의도를 다시 보내면 방송 수신자가 의도의 두 가지 이벤트를 등록하는 것처럼 보입니다. 그래서 의도가 세 번째로 전송되면 3 번 수신됩니다.

이것은 내 응용 프로그램에 큰 문제를 일으키고 있으며 정상적인 것인가 궁금해했습니다. 어떻게 처리해야합니까?

sipIncomingListener = new BroadcastReceiver(){ 

    @Override 
    public void onReceive(Context context, Intent intent) { 
     String action = intent.getAction(); 

     if(CallDialogActivity.SIP_INCOMING_CALL_ANSWER_INTENT.equals(action)){ 
     Log.d("SIPENGINE", "CALL CONNECTED SENT FROM INITINCOMINGLISTENER()"); 
     } 
    }; 

IntentFilter filter = new IntentFilter(CallDialogActivity.SIP_INCOMING_CALL_CANCEL_INTENT); 
registerReceiver(sipIncomingListener, filter); 

이 확인 어쨌든 거기 :

Intent i = new Intent(); 
i.setAction(SIP_INCOMING_CALL_CANCEL_INTENT); 
sendBroadcast(i); 

이 텐트를받을 :


이 텐트를 보내려면 여기

내 코드입니다 의도는 한 번만 해고됩니까 ??

답변

2

잘 모르겠지만 왜이 문제가 발생했는데 인 텐트를 처리하기 위해 브로드 캐스트 (수신기)가 필요합니까? 설명해주십시오. 왜 그렇게합니까?

문제로 돌아 가기 : 간단한 미니멀 프로젝트를 제공 할 수 있습니까? 나는 당신이 제공 한 코드에 문제가 없다고 생각한다.

+0

안녕하세요, 전화 화면 UI가 있습니다. 사용자가 전화를 받으면 내 SIP 엔진 코드의 브로드 캐스트 수신기에서 수신되는 인 텐트를 실행합니다. 따라서 SIP 엔진은 200 OK를 전송합니다. 내 접근 방식이 이것에 대해 괜찮은 것 같습니까? 아니면 더 나은 방법을 제안 하시겠습니까? 나는 내 코드와 페이스 플라잉 순간에 문제를 발견했다. 잘못된 방법으로이 메소드를 사용하고 수신기를 계속해서 등록했다. –

+1

좋아,이 경우에는 의미가있다. 다행히 문제를 해결했습니다. – WarrenFaith

관련 문제