2013-10-17 2 views
3

서비스에서 카운트 다운 타이머를 사용하고 있습니다. 타이머는 01,02,03과 같이 계속 진행됩니다. 모든 것이 제대로 작동합니다. 그러나 장치 화면 잠금 타이머 느리지 만 계속 실행됩니다. PowerManager를 사용하고 있지만 작동하지 않습니다 .PowerManager는 PC에 연결된 USB 케이블이 작동하지만 PC 타이머에서 장치를 제거 할 때만 작동합니다. 왜이 문제가 발생하는지 모르겠습니다. 제발 도와주세요. 이 문제를 해결하려면. advace.Below 내 코드에 감사드립니다.타이머 서비스 화면이 잠길 때 서비스가 느려짐

@Override 
    public void onCreate(){ 
     super.onCreate(); 

     PowerManager pm = (PowerManager)getSystemService(Context.POWER_SERVICE); 
     wl = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, "whatever"); 
     wl.acquire(); 

     } 

    @Override 
    public void onStart(Intent intent, int startId) { 
     super.onStart(intent, startId); 

     flagVibrate=intent.getBooleanExtra("FlagVibrate",false); 
     if(mStartTime == 0L){ 
      mStartTime = SystemClock.uptimeMillis(); 
      mHandler.removeCallbacks(mUpdateTimeTask); 
      mHandler.postDelayed(mUpdateTimeTask, 100); 

     } 
    } 

     @Override 
    public void onDestroy() { 

     super.onDestroy(); 
     mHandler.removeCallbacks(mUpdateTimeTask); 

     stopSelf(); 
     wl.release(); 
    } 
     private Runnable mUpdateTimeTask = new Runnable(){ 

     public void run() { 

     final long start = mStartTime; 
     long millis = SystemClock.uptimeMillis()- start; 

     int seconds = (int) (millis/1000); 
     int stopTime = (int) (millis/1000); 
     int minutes = seconds/60; 
     seconds = seconds % 60; 

     GuardMeActivity.timerView.setText("" + minutes + ":" 
           + String.format("%02d", seconds)); 

     timerStop1 = minutes + ":" 
        + String.format("%02d", seconds); 



     } 

} 

}; 
+0

는 당신이'주어진 적이 <사용 - 권한 안드로이드 : 이름 = "android.permission.WAKE_LOCK"/>'권한을 매니페스트에? – Vigbyor

+0

예. 이미이 권한을 부여했습니다 .PowerManager는 USB 케이블을 PC에 연결했지만 PC 타이머에서 장치를 제거 할 때만 작동합니다. –

답변

2

쓰기 아래로 GuardMeActivity 활동의 onResume() 방법에 코드를 다음과 결과를 확인한다.

파일 가져

import android.view.Window; 
import android.view.WindowManager; 
import android.view.WindowManager.LayoutParams; 

Window window = this.getWindow(); 
window.addFlags(LayoutParams.FLAG_DISMISS_KEYGUARD); 
window.addFlags(LayoutParams.FLAG_SHOW_WHEN_LOCKED); 
window.addFlags(LayoutParams.FLAG_TURN_SCREEN_ON); 
+0

죄송합니다. 작동하지 않는 경우 : ( 실제로 장치 화면이 잠길 때만 타이머가 느려집니다. –

+0

어떤 장치를 사용하고 있습니까? – Vigbyor

+0

Nexus 탭을 사용하고 있습니다 ... LayoutParams 클래스를 가져올 패키지 이름을 알려주십시오. 많은 패키지가 표시됩니다 –

관련 문제