1
我想在用戶設置的特定日期開始鬧鐘。問題在於報警開始的時間需要一個非常混亂的值。下面是其中的時間設置等字符串taskDate
的方法,這是由用戶選擇的日期類似5-12-2011
:按日曆對象設置鬧鐘
private void startAlarm(String taskDate)
{
AlarmManager alarmManager = (AlarmManager) this.getSystemService(Context.ALARM_SERVICE);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
String [] taskDateArray = taskDate.split("-");
int day = Integer.parseInt(taskDateArray[0].trim());
int month = Integer.parseInt(taskDateArray[1].trim());
int year = Integer.parseInt(taskDateArray[2].trim());
Log.w(TAG, "Year " + year + " Month " + month + " Day " + day);
calendar.set(Calendar.YEAR, year);
calendar.set(Calendar.MONTH, month - 1); // Month is zero-based
calendar.set(Calendar.DAY_OF_MONTH, day);
long alarmTime = calendar.getTimeInMillis();
Intent intent = new Intent(this, RememberMeService.class);
PendingIntent pendingIntent = PendingIntent.getService(this, 0, intent, 0);
alarmManager.set(AlarmManager.RTC, alarmTime, pendingIntent);
}
的alarmTime
值總是超過三十億,我沒有想法爲什麼。
但無論如何說,這意味着,作爲變量「alarmTime」傳遞到「設置」 - 方法報警將開始在幾百年,雖然字符串「taskDate」 - 保存用戶選擇的日期 - 傳遞給方法的日期就像「5-12-2011」。 我不明白如何處理這個權利。 – vein
你這樣做的方式是正確的 - 這是所有java平臺上的標準日期實現。 – Ramseys