Android应用程序因来电而被杀死

时间:2013-06-27 11:37:56

标签: java android android-asynctask

在我的应用程序中,我将所有呼叫日志复制到异步任务中的数据库中。但如果我的应用程序之间的通话可能会被终止导致数据不完整。首先,我想阻止我的应用程序在这种情况下被终止,所以我该怎么办?此外,我想跟踪光标,以便当应用程序再次打开时,它将从它停止的完全相同的位置继续并完成作业。

1 个答案:

答案 0 :(得分:1)

这是帮助我在来电期间保存我的游戏状态的代码。希望它也能帮到你......

    TelephonyManager tm;
    private PhoneStateListener mPhoneListener = new PhoneStateListener() {
      public void onCallStateChanged(int state, String incomingNumber) {
       try {
        switch (state) {
        case TelephonyManager.CALL_STATE_RINGING:
         Toast.makeText(GameActivity.this, "CALL_STATE_RINGING", Toast.LENGTH_SHORT).show();

         //Your function to save state right here...
         stopTimer();
         break;
        case TelephonyManager.CALL_STATE_OFFHOOK:
         Toast.makeText(GameActivity.this, "CALL_STATE_OFFHOOK", Toast.LENGTH_SHORT).show();
         break;
        case TelephonyManager.CALL_STATE_IDLE:
         Toast.makeText(GameActivity.this, "CALL_STATE_IDLE", Toast.LENGTH_SHORT).show();
         break;
        default:
         Toast.makeText(GameActivity.this, "default", Toast.LENGTH_SHORT).show();
         Log.i("Default", "Unknown phone state=" + state);
        }
       } catch (Exception e) {
        Log.i("Exception", "PhoneStateListener() e = " + e);
       }
      }
     };