2015-05-19 66 views
1

我的AsyncTask類運行良好,如果我的應用程序在後臺,但如果我接聽電話,它將停止運行。只要我掛斷電話,我就會再次看到它的活動。它在我的應用和我的數據庫之間進行通信我怎樣才能讓這個後臺進程始終運行?android AsyncTask被電話攔截?

回答

0

嘗試使用此

PhoneStateListener phoneStateListener = new PhoneStateListener() { 
      @Override 
      public void onCallStateChanged(int state, String incomingNumber) { 
       if (state == TelephonyManager.CALL_STATE_RINGING) { 
        // do your stuff here 
       } else if (state == TelephonyManager.CALL_STATE_IDLE) { 
        // do your stuff here 
       } else if (state == TelephonyManager.CALL_STATE_OFFHOOK) { 
        // A call is dialing, active or on hold 
        // do your stuff here 
       } 
       super.onCallStateChanged(state, incomingNumber); 
      } 
     }; 
     TelephonyManager mgr = (TelephonyManager) getSystemService(TELEPHONY_SERVICE); 
     if (mgr != null) { 
      mgr.listen(phoneStateListener, PhoneStateListener.LISTEN_CALL_STATE); 
     } 
0

Asynctask類不intented將始終在後臺運行,而不是你應該使用Services。 另外,您不必一直與您的數據庫進行實時通信,您可以使用Content Provider

希望這對你有所幫助。