2016-11-02 13 views
0

Phonestatelistenerに関する質問がAndroidにあります。 シナリオは、私はクイズのアプリを作っています。 すべてうまくいきますが、着信があったときにクイズが止まりません。 電話が切れた後に停止して再開します。Androidで着信コールを受信すると、アクティビティを停止して再開する

私はこの目的でPhoneStateListenerを使用しましたが、onStop()onResume()Activityと呼ぶ方法はわかりません。事前に

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()'コールバックメソッド(Androidからも呼ばれます)も興味があります。 – Karakuri

+0

申し訳ありませんがあなたを得ることができませんでした! AndroidはRINGING状態でアクティビティ自体を停止しますか? – Shamshad

+0

@ Karakuri:onWindowFocusChanged()を使用するためにあなたが言及した特定の理由。私はonStart() - > onStop()はこの仕事をするのに十分だと思う。 –

答えて

0

電話リスナーに電話をかける必要はありません。電話が来たら、onPause()onStop()メソッドを自動的に呼び出します。あなただけonResume()メソッドをメソッドをオーバーライドして)onPause(中をあなたのタイマーを停止し、それを再開する必要があります。

関連する問題