2012-08-13 2 views
0

SIP 응용 프로그램을 만들고 있는데, 한 가지를 제외하고는 거의 모든 작업을하고 있습니다. 나는 SIP 호출이 발생할 때 시작할 활동을 알 수 없다.인 텐트가있는 Android StartAcitivty()

들어오는 호출 등의 처리를 다루는 '전화'서비스를 시작하는 SIP 라이브러리로 작업하고 있으며 '전화'의 인스턴스를 만들 때 청취자를 원하는대로 자세히 등록합니다. 우연히 있다. 수신 전화를 처리하기 위해 'OnIncommingCall'리스너를 등록합니다.

앱이 현재 열리지 않은 경우 앱을 실행하고 싶습니다. 그래서 내 리스너는 다음과 같습니다

thisPhone.setIncomingCallListener(new OnIncomingCallListener() 
    { 
     public void OnIncomingCall(String remoteContact, int accountId) 
     { 
      if(MainActivity.this.getIsOpen()) 
      { 
       MainActivity.this.setIsCallIncomming(true); 
       MainActivity.this.setCurrentCaller(remoteContact); 
       MainActivity.this.setMainUIEles(); 
      } 
      else 
      { 
       Intent i = new Intent(getApplicationContext(), MainActivity.class); 
       i.putExtra("isCallIncomming", true); 
       i.putExtra("currentCaller", remoteContact); 
       i.putExtra("isRegistered", true); 
       i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
       startActivity(i); 
      } 
     } 
    }); //incoming call listener 

전화가 온다 그러나 때, 그것은 응용 프로그램을 제외한 늘 열려있는 반지,하지만 전화는 여전히 다음 울리는 동안 내가 런처에서 응용 프로그램을 열 경우 열고 전화가 알 그곳에.

리스너를 정의한 활동을 시작하려고했기 때문에 문제가 있습니까?

모든 종류의 플래그와 조합 (SINGLE_TOP 등)을 사용해 보았습니다. 제대로 작동하지 않습니다.

도움이 될 것입니다.

DJOodlen

답변

0

글쎄, 내 바보 같은 실수 였어.

일부 토스트를 넣은 후 코드에서 각 비트가 어디에 있는지 알 수 있으므로 getIsOpen()이 false를 반환하지 않는다는 것을 알았습니다. 그것은 onDestroy() 메서드와 마찬가지로 onPause() 메서드에서도 호출되지 않았기 때문입니다 ...

Ooops!

관련 문제