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

TimePicker와 AlramManager 의 관계에 관한 질문입니다.

0 추천
현재 알람 시스템을 만들려고 맨땅에 헤딩중인 대학생입니다.ㅠㅠ

 

알람 매니저를 이용해서 알람을 발생 시키는 거 까지 했어요!!!

 

하지만.. 문제는 TimePicker를 이용하여 설정된 시간에 알람 발생이 안된다는게 함정이죠..

 

 

Calendar calendar = Calendar.getInstance();

calendar.setTimeInMillis(System.currentTimeMillis());

calendar.add(Calendar.SECOND, 5);

 

이 소스는 알람이 현재 시간에서 5초뒤에 발생하는 거고 이것을 버튼 리스너에 넣으면

 

버튼을 눌렀을시 5초뒤에 알림이 발생하는 코드죠..

 

이소스는 이해를 했습니다.. 하지만 TimePicker에서 가져온 시간을 어떻게 저기에다 넣을수 있죠 ?

 

왜냐면 TimePicker의 경우 getCurrentHour 혹은 getCurrentMunite 를 이용하여

시간과 분을 따로 가져오는 메소드 밖에 없는데...

 

저기서 사용한건 currneTimeMills()를 이용하여.... 시간과 분을 통째로 가져 왔잖아요...

 

이게 문제 입니다 ㅠㅠㅠㅠㅠㅠㅠ

 

정말 .....제가 부족한것을 한도끝도 없이 느끼네요 ㅠㅠㅠ 힌트좀 부탁드립니다. 매번

 

여기에 질문을 올리면서 하나하나 문을 열어가는것이 느껴져요! 힘좀 주세요! 화이팅!!!
찬양하리라 (220 포인트) 님이 2013년 6월 1일 질문

2개의 답변

0 추천
TimePicker에서 가져오신 시간와분을 합치셔서 비교하셔야 하지 않을까요 ?

AlarmManager에서 가져오는 현재시간이랑 비교하시면 간단히 풀릴듯한데요..^^*

 

간단히 현재 시간 출력하는 방법입니다.

long Time = System.currentTimeMillis();

Date date = new Date(Time);

SimpleDateFormat nowTime = new SimpleDateFormat("HH:mm:ss");

String nTime = nowTime.format(date);

이렇게 하시면 nTime은 현재시간이 '몇시:몇분:몇초' 이런 형식으로 출력됩니다.

비교하셔서 if문으로 같으면 알람을 구동시키는 로직을 구현하시면 될듯합니다.
안드로메다개발자 (8,830 포인트) 님이 2013년 6월 3일 답변
안드로메다개발자님이 2013년 6월 3일 수정
0 추천
안녕하세요.
int hour = getCurrentHour(timePicker);
int minute = getCurrentMinute(timePicker);
 
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY, hour);
calendar.set(Calendar.MINUTE, minute);
calendar.set(Calendar.SECOND, 0);
 
요렇게 하면 될듯하네요.
  (11,920 포인트) 님이 2013년 6월 3일 답변
int hour = getCurrentHour(timePicker);
int minute = getCurrentMinute(timePicker);

이렇게 넣으니까 timePicker부분이 계속 에러나요 ㅠㅠ
굿굿굿 감사해요 second 설정 가능해졌습니다!!
...