2016-11-02 3 views
0

Phonestatelistener에 관한 질문이 Android입니다. 시나리오는 제가 퀴즈 앱을 만들었습니다. 모든 것이 잘 작동하지만 전화가 걸려 오면 퀴즈가 멈추지 않습니다. 전화가 끊긴 후 중지하고 다시 시작하겠습니다.Android에서 수신 전화를 받으면 활동을 중지하고 다시 시작하십시오.

그 목적으로 PhoneStateListener을 사용했지만 ActivityonStop()onResume()을 호출하는 방법을 모릅니다. 사전에

PhoneStateListener callStateListener = new PhoneStateListener() { 
    public void onCallStateChanged(int state, String incomingNumber) { 
     if(state==TelephonyManager.CALL_STATE_RINGING){ 

     } 

     if(state==TelephonyManager.CALL_STATE_OFFHOOK){ 
      Toast.makeText(getApplicationContext(),"Phone is Currently in A call", Toast.LENGTH_LONG).show(); 
     } 

     if(state==TelephonyManager.CALL_STATE_IDLE){ 
      Toast.makeText(getApplicationContext(),"phone is neither ringing nor in a call", Toast.LENGTH_LONG).show(); 
     } 
    } 
}; 

tManager.listen(callStateListener,PhoneStateListener.LISTEN_CALL_STATE); 

감사 : 여기 내가 사용하고 코드입니다.

+0

안드로이드는'onStop()','onResume()'등을 호출하지 않습니다. 퀴즈의 상태를 처리 할 수있는 코드가 있어야합니다. 또한 onWIndowFocusChanged() 콜백 메소드 (안드로이드에서 호출 됨)에 관심이있을 수 있습니다. – Karakuri

+0

죄송합니다. Android는 RINGING 상태 일 때 활동 자체를 멈 춥니 다. ?? – Shamshad

+0

@ Karakuri : onWindowFocusChanged()를 사용하기 위해 언급 한 특별한 이유. 나는 onStart() -> onStop()이이 일을 수행하기에 충분하다고 생각한다. –

답변

0

전화 수신기를 호출 할 필요가 없습니다. 전화가 오면 자동으로 onPause()onStop() 메서드를 호출합니다. 당신은 단지 onResume() 방법을 방법을 무시하고) onPause (에 당신의 타이머를 중지하고 다시 시작해야합니다.

관련 문제