私はアラームアプリケーションを書こうとしましたが、システムの時間の後に私が選択するとうまく動作します。しかし、私はシステムの時間の前に別の時間を選ぶとき。それはすぐにアラーム、私はplsは私を助けて:(理解できない。私は時間を選択するTimepickerDialogを使用しています。 ここでタイムコードを選択している。(クリックのTextViewで)なぜ私のAlarmManagerが正しくないのですか?
time.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//savePrefs();
int hour = calendar.get(Calendar.HOUR_OF_DAY);
int minute = calendar.get(Calendar.MINUTE);
TimePickerDialog mTimePicker;
mTimePicker = new TimePickerDialog(MainActivity.this, new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker timePicker, int selectedHour, int selectedMinute) {
timePicker.setIs24HourView(true);
calendar.set(Calendar.HOUR_OF_DAY, selectedHour);
calendar.set(Calendar.MINUTE, selectedMinute);
calendar.set(Calendar.SECOND, 0);
get_hour = selectedHour;
get_min = selectedMinute;
millis = calendar.getTimeInMillis();
time.setText(selectedHour + " : " + selectedMinute);
}
}, hour, minute, true);
mTimePicker.setTitle("Set Alarm");
onoff_alarm.setChecked(false);
mTimePicker.show();
}
});
、ここでは
トグルボタン私のONOFFですonoff_alarm.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(onoff_alarm.isChecked()){
my_intent.putExtra("extra", "alarm on");
Toast.makeText(getApplicationContext(), " Alarm On : " + get_hour + " h " + get_min + " m ", Toast.LENGTH_SHORT).show();
pending_intent = PendingIntent.getBroadcast(MainActivity.this, 0, my_intent, PendingIntent.FLAG_UPDATE_CURRENT);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, millis, AlarmManager.INTERVAL_DAY,pending_intent);
}
else {
my_intent.putExtra("extra","alarm off");
Toast.makeText(getApplicationContext(), "Alarm Off !", Toast.LENGTH_SHORT).show();
alarmManager.cancel(pending_intent);
sendBroadcast(my_intent);
}
}
});
正確な問題を説明してください。 – Adnan
*しかし、私はシステムの時間の前に別の時間を選択する* - あなたは* currentSystemTimeを意味するのですか? *? –
私の問題:今私の電話は8h10m、私はtimepickerdialogから8h12m(8h10mの後)、私のコードは私の電話が8h12m、アプリの着信音とプッシュ通知を得たときに正確に動作します。 しかし、私が時間を選ぶときは、電話時間の前に、いつでも、8時08分です。アプリは即座に着信音を鳴らし、翌日を待たずにプッシュ通知(私はそうだと思う)。 貧しい私の英語については残念です。 –