2011-10-20 1 views
1

나는 모든 시간 동안 동일한 시간 동안 반복적으로 알람을 호출해야하는 알람 애플리케이션을 개발 중이다. 나는 오직 모든 일, 오전 10시 현재 하루를 호출하고이 코드를 사용하여 알람을 호출Android에서 알람 관리자를 사용하여 매일 반복 알람을받을 수 있습니까?

c = Calendar.getInstance(); 

    c.set(Calendar.HOUR_OF_DAY,10); 
    c.set(Calendar.MINUTE, 0); 
    c.set(Calendar.SECOND, 0); 
    c.set(Calendar.MILLISECOND, 0); 

Intent intent = new Intent(HomeActivity.this, MyAlarmService.class); 
      PendingIntent pendingIntent = PendingIntent.getService(HomeActivity.this, 123123, intent, 0); 
      alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); 
      alarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, c.getTimeInMillis(), (24*60*60*1000), pendingIntent); 

를 코드를 사용하고 있습니다. 이것을 할 또 다른 방법이 있습니까?

+0

상식!? –

답변

1
  1. 업데이트 시간 (아마도 알람을 정지)하고, 5 분마다에 대한 경보 링 :

    Intent intent = new Intent(this, this.getClass()); 
    PendingIntent pendingIntent = 
        PendingIntent.getService(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); 
    
    long currentTimeMillis = System.currentTimeMillis(); 
    long nextUpdateTimeMillis = currentTimeMillis + 5 * DateUtils.MINUTE_IN_MILLIS; 
    Time nextUpdateTime = new Time(); 
    nextUpdateTime.set(nextUpdateTimeMillis); 
    
    AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE); 
        alarmManager.set(AlarmManager.RTC, nextUpdateTimeMillis, pendingIntent); 
    
  2. 설정 알람이 매일 작동 (예를 들어, 8 am-18pm)

    // if not the time to ring, set to the next day 
    if (nextUpdateTime.hour < 8 || nextUpdateTime.hour >= 18) 
    { 
        nextUpdateTime.hour = 8; 
        nextUpdateTime.minute = 0; 
        nextUpdateTime.second = 0; 
        nextUpdateTimeMillis = nextUpdateTime.toMillis(false) + DateUtils.DAY_IN_MILLIS; 
    } 
    else{ 
        // call your alarm 
    } 
    
0

클래스 MyAlarmService에서 알람이 켜지면 알람을 재설정하십시오. 알람을 설정할 때조차 의도에 MyAlarmService 값을 보낼 수 있습니다

관련 문제