Android AlarmManager不接受来自时间选择器的时间
我正在制作一个应用程序,如果我提供了一个固定的时间,我的报警管理器将被触发,但如果我从时间选择器获取时间,它将不起作用 计时器选择器:-Android AlarmManager不接受来自时间选择器的时间,android,alarmmanager,android-pendingintent,timepicker,Android,Alarmmanager,Android Pendingintent,Timepicker,我正在制作一个应用程序,如果我提供了一个固定的时间,我的报警管理器将被触发,但如果我从时间选择器获取时间,它将不起作用 计时器选择器:- tv.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub final Calendar mcurrentTime = Calendar.
tv.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
final Calendar mcurrentTime = Calendar.getInstance();
int hour = mcurrentTime.get(Calendar.HOUR_OF_DAY);
int minute = mcurrentTime.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);
//tv.setText( selectedHour + " : " + selectedMinute);
mcurrentTime.set(Calendar.HOUR,selectedHour);
mcurrentTime.set(Calendar.MINUTE,selectedMinute);
l= mcurrentTime.getTimeInMillis();
tv.setText(String.valueOf(l));
}
}, hour, minute, true);//Yes 24 hour tim
mTimePicker.setTitle("Select Time");
mTimePicker.show();
}
});
以及我的报警管理器代码:-
Intent myIntent = new Intent(MainActivity.this, MyReceiver.class);
int randomPIN = (int)(Math.random()*9000)+1000;
pendingIntent = PendingIntent.getBroadcast(MainActivity.this, randomPIN, myIntent,pendingIntent.FLAG_ONE_SHOT);
AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC,l , pendingIntent);
如果我这样做,它就会起作用:
alarmManager.set(AlarmManager.RTC,System.CurrentTimeInMillis()+8000 , pendingIntent);
但如果我这样做了,就不会:-
alarmManager.set(AlarmManager.RTC,l , pendingIntent);
其中l来自上面的时间选择器代码
我想我已经说清楚了,请回答
提前感谢。您正在使用两个不同的
日历部分:小时和一天中的小时
:
int hour = mcurrentTime.get(Calendar.HOUR_OF_DAY);
...
mcurrentTime.set(Calendar.HOUR,selectedHour);
您可以尝试使用Calendar.hour\u OF_DAY
设置小时
注意:要检查您使用的时间是否正确,请尝试将l
转换为人类可读的时间并记录下来。不接受是什么意思?张贴你的logcat@RandykaYudhistira哦,抱歉,不接受意味着,如果我使用时间选择器的时间,则不工作,但如果我使用固定的预定义时间,则工作正常。RTC neans:“系统中的报警时间。currentTimeMillis()(UTC中的挂钟时间),所以请在该时间段中传递您的时间format@RandykaYudhistira不起作用..System.currentTimeMillis()alsro在UTC返回,工作正常。。