2011-12-28 5 views
1

경보 응용 프로그램을 만들고 있습니다.AlarmManager를 등록하여 선택한 요일을 반복하는 방법은 무엇입니까?

내 응용 프로그램에서 사용자는 일요일, 월요일 등의 알람을 발생시킬 요일을 선택할 수 있으므로 Calendar 클래스와 AlarmManager를 사용하여 여러 개의 알람을 등록했습니다.

선택한 요일이 현재 요일보다 작 으면 알람이 즉시 울립니다. 그래서 최신의 승리 - - 하나의 알람 매주 PendingIntent.FLAG_UPDATE_CURRENT를 사용하여

Calendar calendar = Calendar.getInstance(); 
calendar.set(Calendar.DAY_OF_WEEK, getDayint); //sunday = 1 
calendar.set(calendar.HOUR_OF_DAY, gethour); 
calendar.set(calendar.MINUTE, getmin); 
calendar.set(calendar.SECOND, 0); 
calendar.set(calendar.MILLISECOND, 0); 

long TIM = calendar.getTimeInMillis(); 

Intent intent = new Intent(MainActivity.this, AlarmReceiver.class); 
PendingIntent sender = PendingIntent.getBroadcast(MainActivity.this, 0, intent,PendingIntent.FLAG_UPDATE_CURRENT); 
AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE); 
am.set(AlarmManager.RTC_WAKEUP, TIM, sender); 

//repeat weekly 
am.setRepeating(am.RTC,TIM, AlarmManager.INTERVAL_DAY*7, sender); 

답변

1

당신은 당신은 단지 하나의 알람을 가지고 좋아하는 것을 말한다. TIM이 과거에 있다면 알람이 즉시 발사되고 (그리고 반복됩니다) 지금까지 모든 것이 설계대로 작동합니다.

당신은 TIM 여부를 체크 할 수있다 (그런데,이 변수이며, concention은 상수처럼 대문자로하지되어야한다는 것입니다)에 System.currentTimeMillis (미만)이 경우에 1 주를 추가

관련 문제