私のアプリケーションは、特定の時間にサービスを開始するように設計されています。
時間を受け取るためにtimePickerを使用します
time.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener() {
public void onTimeChanged(TimePicker view, int hourOfDay, int min) {
hour = hourOfDay;
minute = min;
}
});
ボタンを押すと、alarmmanagerがアクティブになります。その後、インテントはこの時点で開始する必要があります。
public void onClick(View v) {
cal = Calendar.getInstance();
int _hour = hour;
int tmpHour = cal.get(Calendar.HOUR_OF_DAY);
int tmpMinute = cal.get(Calendar.MINUTE);
// Alarm is today?
if (hour > tmpHour || (tmpHour == hour && tmpMinute < minute)){
tmpHour *= 60;
_hour *= 60;
}
**// Add 24Hours to get difference.
else {
tmpHour *= 60;
_hour *= (_hour + 24) * 60;
}**
int minutesToAdd = (_hour + minute) - (tmpHour + tmpMinute);
Log.d("AlarmExample", "Need to add " + minutesToAdd + " minutes");
cal.add(Calendar.MINUTE, minutesToAdd);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
..。
//alarmmanager
AlarmManager amanag = (AlarmManager) getSystemService(ALARM_SERVICE);
amanag .set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), sender);
ここで問題があります:午前12:00から午前12:59までの時間を選択すると、 _hour * =(_hour + 24)* 60; ボタンをタッチするとすぐにアラームが鳴ります。
_hour =(_hour + 24)* 60; *に変更しようとしましたが、機能しませんでした。
これを信頼できるものにする方法を知っていますか?
よろしくお願いいたします。Wolfen