2012-05-07 3 views
1

, когда я попытался начать работу, когда телефон перестает звонить, и он затягивает все время.Начните деятельность

так вот мой широковещательный приемник

public class Incoming extends BroadcastReceiver { 


    @Override 
    public void onReceive(Context arg0, Intent arg1) { 
     // TODO Auto-generated method stub 

     MyPhoneStateListener phoneListener=new MyPhoneStateListener(); 
      TelephonyManager telephony = (TelephonyManager) 
      arg0.getSystemService(Context.TELEPHONY_SERVICE); 
     phoneListener.context = arg0; 
      telephony.listen(phoneListener,PhoneStateListener.LISTEN_CALL_STATE); 
    } 

} 

И это должно начать деятельность

public class MyPhoneStateListener extends PhoneStateListener { 

    int prevstate; 


    public void onCallStateChanged(int state,String incomingNumber){ 


     if(prevstate==TelephonyManager.CALL_STATE_OFFHOOK && state == TelephonyManager.CALL_STATE_IDLE){ 

       Log.i("PARm","Here the activity should start"); 
      } 
     else if(prevstate==TelephonyManager.CALL_STATE_RINGING && state == TelephonyManager.CALL_STATE_IDLE){ 

      Log.i("PARM","Here the activity should start"); 

     } 



    switch(state){ 
     case TelephonyManager.CALL_STATE_IDLE: 
      Log.d("DECallNoteActivity.get getContext();BUG", "IDLE"); 
      prevstate = state; 
     break; 
     case TelephonyManager.CALL_STATE_OFFHOOK: 
      Log.d("DEBUG", "OFFHOOK"); 
      prevstate = state; 
     break; 
     case TelephonyManager.CALL_STATE_RINGING: 
      Log.d("DEBUG", "RINGING"); 
      prevstate = state; 
     break; 
     } 

     } 


    } 

я был бы рад, если вы могли бы сказать мне, как получить контекст в этом случае, чтобы начать активность или другой способ как начать его.

спасибо.

+0

Просьба указать любые ошибки logcat. – Sam

+0

Как настраивается BroadcastReceiver? Использовать тег в манифесте или использовать Context.registerReceiver()? –

ответ

1

Контекст вещательного приемника действителен только во время вызова onReceive: его нельзя сохранить и повторно использовать позже. Если вам нужно начать действие таким образом, вам нужно будет начать с Service с BroadcastReceiveronReceive, и эта служба создаст слушателя состояния телефона и запустит нужный Activity: после того, как он запустил Activity, он может остановить себя.

+0

** Спасибо, ты сделал мой день ** – J1and1