1

AlarmManagerを特定の日付に設定しようとしましたが、まったく動作しません。私はちょうど時間を使用するときにうまく動作します。ここ はコードです:特定の日付にAlarmManagerが機能しない

SharedPreferences prefs = PreferenceManager 
        .getDefaultSharedPreferences(this); 
      String getEventTime = prefs.getString("EventSTime", ""); 
      String getEventDate = prefs.getString("EventDate", ""); 
      Toast.makeText(this, getEventTime + " " + getEventDate, 
        Toast.LENGTH_LONG).show(); 
      String temp = "", temp2 = ""; 
      DateFormat dateformat = new SimpleDateFormat("HH:mm"); 
      DateFormat dateformatDate = new SimpleDateFormat("dd-MM-yyyy"); 
      try { 
       temp = dateformat.format(dateformat.parse(getEventTime)); 
       temp2 = dateformatDate.format(dateformatDate 
         .parse(getEventDate)); 
       Toast.makeText(this, temp + " " + temp2, Toast.LENGTH_LONG) 
         .show(); 

      } catch (ParseException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
      String getEventTimeSubStringHour = temp.substring(0, 2); 
      String getEventTimeSubStringMinute = temp.substring(3, 5); 
      String getEventDateSubStringDay = temp2.substring(0, 2); 
      String getEventDateSubStringMonth = temp2.substring(3, 5); 
      String getEventDateSubStringYear = temp2.substring(6, 10); 
      Toast.makeText(
        this, 
        getEventTimeSubStringHour + " " 
          + getEventTimeSubStringMinute + " " 
          + getEventDateSubStringDay + " " 
          + getEventDateSubStringMonth + " " 
          + getEventDateSubStringYear, Toast.LENGTH_LONG) 
        .show(); 
      hourOfDay = Integer.parseInt(getEventTimeSubStringHour); 
      minute = Integer.parseInt(getEventTimeSubStringMinute); 
      day = Integer.parseInt(getEventDateSubStringDay); 
      month = Integer.parseInt(getEventDateSubStringMonth); 
      year = Integer.parseInt(getEventDateSubStringYear); 
      int second = 0; 
//   calendar.setTimeInMillis(System.currentTimeMillis()); 
//   calendar.clear(); 
      //calendar.set(year, month, day); 
      calendar.set(Calendar.YEAR, year); 
      calendar.set(Calendar.MONTH, month); 
      calendar.set(Calendar.DAY_OF_MONTH, day); 
      calendar.set(Calendar.HOUR_OF_DAY, hourOfDay); 
      calendar.set(Calendar.MINUTE, minute); 
      calendar.set(Calendar.SECOND, second); 


      Intent intent = new Intent(MessageService.this, 
        ServiceManager.class); 
      PendingIntent callToServiceManager = PendingIntent.getService(
        MessageService.this, 2, intent, 0); 
      AlarmManager alarmToCallServiceManager = (AlarmManager) getSystemService(ALARM_SERVICE); 
      alarmToCallServiceManager.set(AlarmManager.RTC_WAKEUP, 
        calendar.getTimeInMillis(), callToServiceManager); 

でもcalendar.set(year, month, day, hourOfDay, minute, second)何が起こっているを使用していない後。 助けてください!ありがとう!

+1

私はまったく同じ問題を抱えており、とても迷惑です。 YEARとMONTHとは何かを削除すれば、私は自分のシステムに気づきます。 –

+0

@EugenevanderMerweそれであなたはどんな解決策を見つけましたか? –

+1

それは私が月に6月を保管していたことが判明しています。実際にはそれは5月に数えて保存する必要があります。 –

答えて

0

私を導いてくれたエイゲンに感謝します。 それはバリューの問題であることが分かりました。実際、私は6月の代わりに7月として6月を保管していました。私は月に1を追加していて、問題を作り出していました。今、私はそれを修正し、今は正常に動作しています。