0

현재 WakeLock 인 Handler &을 사용하여 30 분마다 활동을 시작하는 앱을 만들고 있습니다. 그러나 나는이 방법의 신뢰성에 대해 궁금해했다. 나는 this post을 확인했지만 내 질문에는 답하지 않는 것 같습니다. 여기에 내가 살아 내 서비스를 유지하기 위해 사용하고 있는데 코드입니다 :이 어떻게 신뢰할 수있는wakelock + 핸들러는 장치가 깨어있게 할 수 있습니까?

@Override 
public int onStartCommand(Intent intent, int flags, int startId) { 
    PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE); 
    wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, "MyWakelockTag"); 
    wakeLock.acquire(); 
    final Runnable runnable = new Runnable() { 
     @Override 
     public void run() { 
      Intent sendMessage = new Intent(); 
      sendMessage.setAction(LAWAY); 
      sendMessage.setClass(LAWAYService.this, LReceiver.class); 
      sendBroadcast(sendMessage); 
     } 
    }; 
    handler.postDelayed(runnable, DURATION); 
    return START_STICKY; 
} 

이다는? 나는 이것을 WakefulBroadcastReceiver과 함께 사용하고 있습니다. 지금까지 삼성 갤럭시 노트 5, Google Pixel XL 및 Nexus 6P를 비롯한 테스트를 거친 세 가지 기기로 작업하고 있습니다.

많은 양의 배터리가 소모되었습니다. 친환경 솔루션이 있습니까?

+0

그리고 'TimerTask'비즈니스가 필요하지 않습니다. Android에서는 정말 효율적이지 않습니다. 그리고 ** 나는 처리기가 짧은 작업에 사용된다는 것을 알고 있지만,이 경우에는 그 밖의 옵션이 무엇이있을 수 있습니까 **. – DeveloperSN

+0

왜 서비스를 가지고 있으며, 왜 왜요 wockockock이 필요합니까? –

+0

주기적으로 활동을 시작 하시겠습니까? @TimCastelijns – DeveloperSN

답변

0

이 방법은 Doze 모드로 인해 Android 6.0 (API 23)부터 안정적으로 작동하지 않습니다. 장치가 유휴 상태이고 Doze에있는 경우 웨이크 잠금 장치가 무시됩니다. API 26부터는 더 제한적이며 백그라운드 서비스는 자유롭게 실행될 수 없습니다.

사용자가 앱을 적극적으로 사용하고 작업 (새로운 배경 한도)을 알고있는 경우가 아니면 일반적으로 자주 깨울 필요가 없습니다. JobScheduler을 사용하여 일상적인 백그라운드 작업을 처리합니다. 도체 모드에는 한계가 있습니다.)

+0

예! 나는 그것을 곧 할 것이다! 내 앱이 공개되었습니다. [Look Away : 눈 보호 앱] (https://play.google.com/store/apps/details?id=inc.developcloud.lookaway) – DeveloperSN

0

예. wakefulBroadcast를 사용하려면 startWakefulService()를 통해 Service를 사용해야하며 작업을 마친 후에 wakelock을 릴리스해야합니다. https://developer.android.com/training/scheduling/wakelock.html 가장 효과적인 방법은 작업 시작을 위해 JobServices와 함께 JobScheduler를 사용하는 것입니다.

+0

고마워! 마침내 내 앱이 게시되었습니다. [Eye Protection] (https://play.google.com/store/apps/details?id=inc.developcloud.lookaway) – DeveloperSN

관련 문제