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返回,工作正常。。