2012-03-19 7 views
0

私のアプリは、電話をかけた後に停止したようです。どのように実行しておき、通話前に状態を維持するのですか?通話後にアンドロイドを走らせる方法は?

+1

あなたはAndroidのアクティビティのライフサイクルを理解していますか? http://developer.android.com/guide/topics/fundamentals/activities.html –

答えて

2

アプリケーションが実行されている、とあなたが電話を受ける、あなたのアプリケーションは

onPause() { 
    //save your state here 
} 

メソッドをオーバーライドすることで、アプリの現在の状態を保存し、

onResume() { 
    //load your state here 
} 
+0

私のアプリが情報を受け取るためにいくつかのスレッドを使用する場合、コールが来ると、スレッドは停止するかどうか?これらのスレッドを再起動する必要がありましたか? – pthread

+0

はい、アプリケーションが一時停止しているときにスレッドが実行されないようにし、onResumeメソッドが呼び出されたときにスレッドを再作成/再起動するのが良い方法です。 –

+0

@GodwinW素晴らしい答えです。 –

1

あなたがPhoneStateListenerを使用できる可能性がありを実装する必要がありますコール終了後に前のアクティビティを開始します。

class CallEndedListener extends PhoneStateListener { 
     boolean called = false; 

     @Override 
     public void onCallStateChanged(int state, String incomingNumber) { 
      super.onCallStateChanged(state, incomingNumber); 

      if (state == TelephonyManager.CALL_STATE_OFFHOOK) 
       called = true; 

      if (called && state == TelephonyManager.CALL_STATE_IDLE) { 
       called = false; 
       // do something here. 
      } 
     } 
    }