2015-03-19 2 views
1

Я пытаюсь переключить действия из прослушивателя для PJSIP-Calls, , но получив эту ошибку: Fatal signal 6 (SIGABRT), code -6 in tid 8613 (Thread-23469).Фатальный сигнал 6 (SIGABRT) при переключении активности Android

Мой listenercode:

public void onIncomingCall(OnIncomingCallParam iprm){ 
     Log.e("SIP_Account", "Receiving Call"); 
     SIP_Controler sip_controler = SIP_Controler.getInstance(); 
     SIP_Call call = new SIP_Call(sip_controler.getSIPAccount(), sip_controler.getEndpoint()); 

     if(sip_controler.hasActiveCall()){ 
      //If there is an active call, decline the incomming call and send busy signal 
      CallOpParam callOpParam = new CallOpParam(); 
      callOpParam.setStatusCode(pjsip_status_code.PJSIP_SC_DECLINE); 
      try { 
       call.hangup(callOpParam); 

      } catch (Exception e) { 
       Log.e("SIP_Account", "Error while hanging up the incomming call " + e.toString()); 
      } 
     }else{ 
      Log.e("SIP_Account", "Try to change activity:"); 
      MiscFunctions.getCurrentForegroundActivity().changeActivity(VoIPViewCommands.RECEIVECALL, ActivityVoIPCall.class); 
     } 
    } 

В MiscFunctions я получил код, который позволяет мне получить доступ к деятельности, которая в настоящее время на переднем плане:

public class MiscFunctions { 

static private TelephoneActivity currentForegroundActivity; 


static public TelephoneActivity getCurrentForegroundActivity(){ 
    return currentForegroundActivity; 
} 

static public void setCurrentForegroundActivity(TelephoneActivity ta){ 
    currentForegroundActivity = ta; 
} 
... 

И TelephoneActivity является продление на SherlockFragmentActivity.

/*************************************************************************************************** 
    * All activities in this project should extend this activity. This one will make sure that you can 
    * always get the activity that is currently in the foreground of your app. 
    * 
    **************************************************************************************************/ 
    public class TelephoneActivity extends SherlockFragmentActivity { 

     public void onResume(){ 
      super.onResume(); 
      MiscFunctions.setCurrentForegroundActivity(this); 
     } 

     public void changeActivity(VoIPViewCommands extra, Class activityClass){ 
      Intent i = new Intent(getApplicationContext() , activityClass); 
      Log.e("TelephoneActivity", "Change the activity"); 
      i.putExtra("Command", extra); 
      getApplicationContext().startActivity(i); //this is the line that leads to a crash 
//with 'Fatal signal 6 (SIGABRT), code -6 in tid 8613 (Thread-23469)' message. 
     } 

    } 

Может кто-нибудь объяснить мне, в чем проблема здесь?

+0

Вы чрезмерно отделан сообщение об ошибке. Включите значительное количество предшествующих и следующих строк, чтобы дать ему контекст. –

+0

Сообщение об ошибке не должно быть длиннее в его случае, если он не сделал никаких других ошибок. Проверьте мой ответ для получения дополнительной информации. – Nerethar

ответ

1

Сигнал, который вы получаете, является сигналом «отменить», отметьте this для получения списка возможных сигналов.

Я думаю, ваша проблема связана с getApplicationContext() .startActivity (i); Вот. Просто напишите startActivity(i), и вы должны быть хорошими.

заметить также this part документации Android о getApplicationContext:

Return the context of the single, global Application object of the current process. This generally should only be used if you need a Context whose lifecycle is separate from the current context, that is tied to the lifetime of the process rather than the current component.

Смежные вопросы