2014-09-23 6 views
1

다음과 같이 타이머를 설정했습니다.일시 중지 타이머 안드로이드 장치가 잠겨 있고 잠기지 않았을 때 다시 시작합니다.

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(); 
      } 

     } 
    }; 

이제 모든 것이 정상적으로 작동합니다. 내 문제는 안드로이드 장치가 잠겨있을 때 시작됩니다. 장치를 잠그면 타이머가 계속됩니다. 기기가 잠금을 해제하고 잠금 해제되었을 때 다시 시작하면 타이머를 일시 중지하고 싶습니다.

감사합니다.

답변

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

1

이것을 확인하십시오. 장치가 잠겨있는 경우는

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

이 상태를 점검하는의 카운트 다운 타이머 및 onTick()를 사용하여 잠금 해제/제공합니다. If 진정한 타이머 정지/카운트 저장 else 계속.

+0

감사를 시도 할 수 있습니다. – Beena