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

알람 시간 설정 문제입니다.

0 추천
Calendar calendar = Calendar.getInstance();
    calendar.setTimeInMillis(System.currentTimeMillis());
    calendar.add(Calendar.MINUTE, value);
    
    AlarmManager am = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
    am.set(AlarmManager.RTC, calendar.getTimeInMillis(), sender);  

알람을 구현하고 있는데.현재 시간을 이런식으로 넣었는데요. 제가 8시 19분 40초에 8시 20분알람을 셋하면 8시 20분 40초에 알람이 울리게 됩니다. 이거를 8시 20분 땡치면 알람을 울리게하고 싶은데... 아이디어 없나용?? 

궁금해요 (240 포인트) 님이 2014년 5월 30일 질문
value = intent.getIntExtra("val", 99990); 이렇게 설정하여씃비나

1개의 답변

0 추천
음~~~! 조금.... 소스이해를 하시면 참쉽게 접근이 가능 하실텐데.....

calendar.setTimeInMillis(System.currentTimeMillis()); == 8:19:30

calendar.add(Calendar.MINUTE, value); == 8:20:30

알람을 위 카렌더 값으로 호출을 하였으니 알람은 너무나도 정확하게 잘 울리고 있는 거지요~~!

그렇담 정각에 울리게 하려면???

하신데로 분을 설정 하셨습니다~!

초도 당연히 설정 해주시면 되겠죠?
ThisPlus (46,920 포인트) 님이 2014년 5월 30일 답변
음.... calendar.add(Calendar.MINUTE -> 이게 현재시간의 분이 들어가게 되는게 아닌가요? 음,.. 이거 감이 잡히질 않는데요  이게 왜 1분뒤로 설정이 되는것이지요 2*Calendar.MINUTE 하면 2분이 되지 않고 에러가 나버리는군요 ㅠ.ㅠ 왜 그런거죠
음,, 아무리 봐도 Calendar.MINUTE 는 현제 시간의 분이 되는데 왜 1분뒤에 울리게 되는건가용 ㅠ
제가 질문을 드려보죠~~!
Calendar.MINUTE 이 현재시간이 설정 되는거라면 value는 먼가요?
아..value의값이표현하고잇는게 분이라는소리인거죠? 그면 calender.minutes 0 하면된다는소리인가요?빨리집가서해보고싶내요ㅎ
ㄷㄷㄷ
그렇게 하시면 바로 알람이 울리거나 아예 울리지 않습니다....
왜 보이는걸 피하시고 엇나가려 하시는지 모르겠네요~~!
함수명이 뭔가요?
add 뜻이 뭔가요??? 더하기 자나요~!
그리고 set는 뭔가요? 뭐 마련하다 설정하다 이런거자나요~!
카렌더에 뭘하셨습니까?
calendar.setTimeInMillis(System.currentTimeMillis());
이미 지금 시간를 설정 하셨습니다~! 그리고 다음에
calendar.add(Calendar.MINUTE, value);
하셨습니다~!
add머라구요? 더하기
머를? Calendar.MINUTE 분을...
얼마나 value
자~! 알람을설정한시간이 8시30분30초 라 합시다.
그리고 value 값이 1이라 합시다.
calendar.setTimeInMillis(System.currentTimeMillis());를 이용하여
카렌더에 8시30분30초가 설정 되었습니다.
거기에 calendar.add(Calendar.MINUTE, value);를 이용하여
1분을 추가했습니다.
8시30분30초에 1분을 더하면 어떻게 되나요?
8시31분30초 인가요? 아니면
8시31분00초 인가요?
작성자 님이 처음에 질문하신
"제가 8시 19분 40초에 8시 20분알람을 셋하면 8시 20분 40초에 알람이 울리게 됩니다"
현상이 왜일어나는지 아시겠죠?
원인을 알았으니 해결 하시면 됩니다~!
아 함 됫습니당 ㅎㅎvalue = intent.getIntExtra("val", 99990);  코드 짜신분이 value를 9990줬길래 뭐지 했는데, 알고보니,, 알람이 여기서 펜딩받는게 아니고 다른 곳에서 받더군요 ㅎㅎ 잘 해결됬습니다 감사합니다~
...