2016-02-12 84 views
-1

**它处于摘机状态时不会中断while while循环。留在while循环中。在这两种状态Funtion调用工作正常,但**电话状态Listner无法正常工作android

PhoneStateListener phoneStateListener = new PhoneStateListener() { 
      @Override 
      public void onCallStateChanged(int state, String incomingNumber) { 
       // TODO Auto-generated method stub 
       // super.onCallStateChanged(state, incomingNumber); 
       switch (state) { 
       case TelephonyManager.CALL_STATE_RINGING: 
        callStatus=true; 
        while(callStatus) 
        { 

        OnOff(); 
        if(state==TelephonyManager.CALL_STATE_OFFHOOK) 
        { 
         break; 

        } 

        } 
        break; 
       case TelephonyManager.CALL_STATE_OFFHOOK: 
        callStatus=false; 
        Off(); 
        break; 
       default: 
        break; 
       } 
+0

欢迎来到SO。不幸的是,你很难弄清楚你在问什么。你写的唯一非代码更像是意识流而不是问题描述。你还没有给我们足够的代码来找出可能导致问题的原因。如果你能把它变成[mcve](在这种情况下强调“完整”),那将是最好的。 – Teepeemm

回答

0

每次广播reciever之称,是创造了一个新的实例。所以你的代码将无法工作 - 它永远不会在同一个对象上获得OFFHOOK。它可能工作,如果callStatus是一个静态的,但即使如此是糟糕的代码 - 你忙于循环在UI线程。