2014-09-23 65 views
1

我已經設置了我的計時器,如下所示。當Android設備被鎖定時暫停TimerTask並在解鎖時恢復回

Timer t; 
TimerTask task; 
t = new Timer(); 
t.schedule(task, 10000); 
task = new TimerTask() { 

     @Override 
     public void run() { 
      finish(); 

      try { 
       t.cancel(); 
       t = null; 
      } catch (Exception e) { 
       // TODO: handle exception 
       e.printStackTrace(); 
      } 

     } 
    }; 

現在一切工作正常。我的問題開始時,Android設備被鎖定。設備鎖定時計時器繼續。當設備獲取鎖定時,我想暫停計時器,並在解鎖後恢復。

謝謝,提前。

回答

0

你可以試試下面的代碼

@Override 
protected void onPause() 
{ 
super.onPause(); 

// If the screen is off then the device has been locked 
PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE); 
boolean isScreenOn = powerManager.isScreenOn(); 

if (!isScreenOn) { 

    // The screen has been locked 
    // do stuff... 
} 
} 
+0

感謝您的回答。它真的幫助了我。 – Beena 2014-09-23 10:45:08

1

選中此項。它給您的設備被鎖定/解鎖

KeyguardManager kgMgr = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE); 
boolean showing = kgMgr.inKeyguardRestrictedInputMode(); 

使用的,一個倒數計時器和onTick()檢查此條件。 If真正的停止計時器/保存計數else繼續。

+0

感謝您的幫助,您使用倒計時器的建議。 – Beena 2014-09-23 10:46:14

相關問題