2017-12-19 3 views
0

두 개의 사용자 정의 요일 사이에 알람을 설정하는 방법은 무엇입니까? 예 : 19/12/2017 - 20/12/2018 내가 어떻게 해 ?. 제발 도와주세요AlarmManager의 사용자 정의 간격 설정

+0

코드를 게시하십시오. 시도해 보셨습니까? – Jorgesys

+0

특정 시간 후에 알람을 반복하고 싶지 않습니까? – notTdar

+0

@Jorgesys alarmManager.setRepeating (AlarmManager.RTC_WAKE_UP, AlarmManager.Interval_Day, alarmIntent) AlarmManager.Interval_Day 대신 사용자 정의 간격을 설정하려고합니다. –

답변

0

AlarmManager.INTERVAL_DAY은 하루의 밀리 초 수를 길게 나타냅니다.

원하는 긴 값을 전달할 수 있습니다. 예를 들어

, 2 일 3 시간

`AlarmManager.INTERVAL_DAY` * 2 + `AlarmManager.INTERVAL_HOUR` * 3 

것 또는 당신은 단지 = 그

일초처럼 1000

일분 = 60 * 초 ... 등을 계산할 수 있습니다 . 당신이 미래의 특정 날짜에 알람을 발사 할 경우

, 당신은 AlarmManager.set() 또는 AlarmManager.setExact() .. 등을 사용할 수 있습니다 그리고 당신은 당신의 날짜에 해당하는 날짜/달력 개체에서 밀리 초를 전달합니다.

new Date(2017, 5, 12).getTime() 또는 Calendar.getTime().getTime()

+0

예를 들어 20에서 일정을 추가하고 싶습니다./12/2017 - 4/01/2018 그 사이에 17 일이 있습니다. 어떻게 17 일간 일정을 잡을 수 있습니까? 그 17 일을 어떻게 얻을 수 있습니까? 계산 방법? –

+0

또한 특정 날짜에 알람을 시작하는 방법을 알고 싶습니다. ? –

+0

업데이트 된 답변 확인 – elmorabea

0

당신은 단순히 setExact를 호출 할 수 있습니다 다음 각 PendingIntent 내부에서 먼저 검사는 시간이 임계 값 전에 있는지 확인하고 그것이 다음 경우, setExact 다시.

public void scheduleAlarm() { 
    alarmMgr = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE); 
    Intent intent = new Intent("myIntent"); 
    alarmIntent = PendingIntent.getBroadcast(context, 0, intent, 0); 

    alarmMgr.setExact(TYPE, ALARM_INTERVAL, alarmIntent); 
} 

public class AlarmReceiver extends BroadcastReceiver { 

    @Override 
    public void onReceive(Context context, Intent intent) { 
     if (intent.getAction().equals("myIntent")) { 
      //do something 
      if (timeHasNotPassedYet(Calendar.getInstance())) { 
       scheduleAlarm(); 
      } 
     } 
    } 
} 

timeHasNotPassedYet이 false를 반환 할 때까지 알람이 예약됩니다. 그때 새로운 경보는 재조정되지 않을 것입니다.