2012-08-13 86 views
0

我正在製作一個SIP應用程序,而且幾乎所有的工作都是我想要的,除了一件事情。發生SIP呼叫時無法啓動活動。Android StartAcitivty()with intent

我正在開發一個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 

然而,當來電時,鈴響,但應用程序不會打開,但如果我從啓動器打開該應用程序,而呼叫猶然後它會打開並知道呼叫那裏。

問題是因爲我試圖啓動定義偵聽器的Activity嗎?

我試過各種標誌和組合(SINGLE_TOP等),我可以不能讓它工作。

任何幫助,將不勝感激!

DJOodlen

回答

0

嗯,這是我的一個愚蠢的錯誤。

加入一些敬酒之後,我可以看到代碼中的每一位都發生了什麼,我意識到getIsOpen()永遠不會返回false。這是因爲它沒有像onDestroy()方法那樣在onPause()方法上被調用...

哎呀!