2012-12-31 20 views
0

在BroadcastReceiver類中我有這段代碼,但我不明白爲什麼第一次通知不運行。如果我刪除週期,警報管理器運行完美。價值也沒關係(我已經給了我一杯吐司)。是「如果」的問題?如果和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

你應該else完成if的。記錄錯誤如果您點擊了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 

    }