마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

알람 반복 시간설정 문제 ㅠㅠㅠ

0 추천
alarm = (AlarmManager) getSystemService(Context.ALARM_SERVICE); 
    Intent intent2 = new Intent(Settings.this,
    AlarmReceiver.class);
    intent2.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
    PendingIntent sender = PendingIntent.getBroadcast(
    Settings.this, 0, intent2, PendingIntent.FLAG_UPDATE_CURRENT);

alarm.setRepeating(AlarmManager.RTC_WAKEUP, triggerTime, AlarmManager.INTERVAL_DAY, sender );

 

이렇게 24시간에 한번씩 울게 설정을 해놨는데요 

 

private long setTriggerTime()
{
   // current Time
   long atime = System.currentTimeMillis();
   // timepicker
   Calendar curTime = Calendar.getInstance();
   curTime.set(Calendar.HOUR_OF_DAY, hour+12);
   curTime.set(Calendar.MINUTE, 0);
   curTime.set(Calendar.SECOND, 0);
   curTime.set(Calendar.MILLISECOND, 0);
   long btime = curTime.getTimeInMillis();
   long triggerTime = btime;
   if (atime > btime)
       triggerTime += 1000 * 60 * 60 * 24;
    
   return triggerTime;
}
 
 
처음 울때는 잘 우는데 
24시간 지나면 울지를 않네요 ㅠㅠㅠ 
 
혹시나 싶어서 5초에 한번씩 울게하니까 잘되는데 왜 24시간은 안먹는지 궁금합니당 ㅠㅠ

 

도미노르 (1,390 포인트) 님이 2015년 3월 4일 질문

2개의 답변

0 추천

흠... 저도 이것과 거의 유사한 코드를 사용하고 있습니다.

오류를 모르겠습니다. 잘 될 것 같은데...

JINASYS (5,630 포인트) 님이 2015년 3월 4일 답변
JINASYS님이 2015년 3월 4일 수정
0 추천
제가 구현한 것과 큰 차이는 없어 보이는데

다만 저는 setRepeating 대신 setInexactRepeating 를 사용했습니다.

https://medium.com/marojuns-android/scheduling-repeating-alarms-c36d1a9314cb

위 사이트에 설명이 잘 되어 있고, 저도 저 포스트를 보고 구현했으니

한 번 찬찬히 참고해 보셔요~
가랑비 (10,530 포인트) 님이 2015년 3월 5일 답변
답변 감사합니다

setInexactRepeating 이거 배터리는 적게 닳아도

시간이 약간 부정확하다던데 써보니 정확하게 잘 울리던가요 ??
테스트 했었을 때 간혹 구형 폰에서 10분 정도 오차가 발생했었는데
갤넥/넥5/넥7에서는 대부분 큰 오차 없이 동작하고 있습니다.
...