2012-12-31 2 views
0

BroadcastReceiver 클래스에서이 코드를 가지고 있지만 왜 첫 번째 알림이 실행되지 않는지 이해할 수 없습니다. 주기를 제거하면 alarmmanager가 완벽하게 실행됩니다. 또한 값은 괜찮습니다 (나는 그것을 보여준 축배를 가지고 있습니다). "if"문제입니까?if 및 broadcastreceiver

CheckboxPreference = prefs.getBoolean("checkboxPref", true); 
    notify = prefs.getString("notify", ""); 

if (CheckboxPreference){ 
     if (notify.equals("1")){ 
      alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, cal1.getTimeInMillis(), DateUtils.DAY_IN_MILLIS, morningAlarm); 
     } 
     if (notify.equals("2")){ 
      alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, cal1.getTimeInMillis(), DateUtils.DAY_IN_MILLIS, morningAlarm); 
      alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, cal3.getTimeInMillis(), DateUtils.DAY_IN_MILLIS, eveningAlarm); 
     } 
     if (notify.equals("3")){ 
      alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, cal1.getTimeInMillis(), DateUtils.DAY_IN_MILLIS, morningAlarm); 
      alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, cal2.getTimeInMillis(), DateUtils.DAY_IN_MILLIS, middleAlarm); 
      alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, cal3.getTimeInMillis(), DateUtils.DAY_IN_MILLIS, eveningAlarm); 
    } 
    } 
+0

코드에 문제가없는 것 같습니다. 그러나 if (notify.trim(). equals (...))'를 시도하거나'if()'블록에 들어가는 것을 어떻게 확인 했는가? –

답변

1

당신은 elseif 년대를 완료해야합니다. else에 도달 한 경우 로그 오류

if의 모든 조건을 확인하십시오 (예 : notify 및 CheckBoxPreference의 값). 이렇게하면 코드를 직접 디버깅하는 데 도움이됩니다.

if (CheckboxPreference){ 
     if (notify.equals("1")){ 
      alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, cal1.getTimeInMillis(), DateUtils.DAY_IN_MILLIS, morningAlarm); 
     } 

     else if (notify.equals("2")){ 
      alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, cal1.getTimeInMillis(), DateUtils.DAY_IN_MILLIS, morningAlarm); 
      alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, cal3.getTimeInMillis(), DateUtils.DAY_IN_MILLIS, eveningAlarm); 
     } 
     else if (notify.equals("3")){ 
      alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, cal1.getTimeInMillis(), DateUtils.DAY_IN_MILLIS, morningAlarm); 
      alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, cal2.getTimeInMillis(), DateUtils.DAY_IN_MILLIS, middleAlarm); 
      alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, cal3.getTimeInMillis(), DateUtils.DAY_IN_MILLIS, eveningAlarm); 
     } 
     else { 
      // Log something 
     } 
    } 
    else { 
     // Log CheckBoxPref false 

    }