2011-10-25 10 views
0

アプリを開発中で、アプリ内で電話をかけられましたが、終了したら情報を保存してポップアップしてアプリを再開します。Androidの起動方法電話の終了後

私はコールをダイヤルして、別のインスタンスに出てくるが、一緒に置くことができないポップアップを得ることができました。この質問は今年の3月に回答されましたが、他の誰かがより良いアイデアを思いついているかどうかを見たいと思っていました。ありがとうございました。

答えて

5

アクティビティライフサイクルダイアグラムを見ると、電話がかかってくると、アプリケーションコールonPause()メソッドが呼び出されます。私が考えることができるのは、SharedPreferencesスレッドからデータを書き込んでデータを保存することです。これは、コールリスナーまたはonPause()メソッドでアプリケーションがユーザーに表示されなくなっても実行されます。しかし、より現実的なアプローチはonRestoreInstanceState()メソッドで最近復元されるすべての関連データを入れてonSaveInstanceState()メソッドを使用することです。

Another activity comes in front

続きを読むここで彼らがどのように動作するか:に行くときのコールが、行われた場合は、マークするいくつかのflagsを使用することができますPhoneStateListenerクラスで

http://developer.android.com/reference/android/app/Activity.html#onRestoreInstanceState(android.os.Bundle) http://developer.android.com/reference/android/app/Activity.html#onSaveInstanceState(android.os.Bundle) http://developer.android.com/reference/android/telephony/PhoneStateListener.html

CALL_STATE_RINGINGの状態を確認してから、CALL_STATE_IDLEに電話が行われている間に常にIDLE状態が発生しているためにコールが行われたかどうかを確認します何か、しかしフラグがある場合は、if(flag)何かをしてフラグを変更することができるので、リスナーが再びCALL_STATE_IDLEに入るたびに、あなたのフラグは反転されます。ちょうどアイデア。

編集:はあなたの活動/サービス・クラスで内部クラスとしてPhoneStateListenerクラスを追加し、TelephonyManagerを使用して携帯電話の状態リスナーを登録します。私はあなたの道を見つけることを願っています

public class MyClassActivity extends Activity 
{ 
    .... 
    //set here your call listener here 

} 



protected class PhoneState extends PhoneStateListener{ 
     private boolean mCall=false; 
     @Override 
     public void onCallStateChanged(int state, String incomingNumber) { 


      switch(state) 
      { 
      case TelephonyManager.CALL_STATE_RINGING: 
       mCall=true; //fire the flag that there is call ongoing 
       break; 
      case TelephonyManager.CALL_STATE_IDLE: 
       if(mCall) 
       { 
        mCall=false; //Reverting the flag, indicating you are aware that there was call 
        // Here do the rest of your operation you want 
       } 
       break; 

      default: 
       }  
      super.onCallStateChanged(state, incomingNumber); 
     } 

    } 
+0

これはとても役に立ちます!私はこのコンセプトで溢れています。あなたは私が実際にこの例を見つけることができるか分からないだろうか?私はこの全体のコンセプトの中で私の頭を包み込むことを試みています。ありがとう、ニコラ! – smithseanp16

+0

電話状態リスナーについてのアイデアを追加しました。あなたが私を望むなら、私はSharedPrefs、onSaveInstnc()、onRstrInstnc()のためにあなたのために書きたいものを試してみます...しかし、これらのいくつかについてはかなりの例があると思います。乾杯。 –

+1

これは完璧な信じられないほどです! – smithseanp16

関連する問題