Java 使用时间选择器使报警管理器每天重复

Java 使用时间选择器使报警管理器每天重复,java,android,eclipse,alarmmanager,timepicker,Java,Android,Eclipse,Alarmmanager,Timepicker,我试图让我的alarm manager每天在timepicker选择的时间重复,我对java编码和其他东西还是新手,我不知道在setRepeating()中写什么,在一个alarm manager示例中,我发现了这段代码 alarmManager.set(AlarmManager.RTC_WAKEUP, targetCal.getTimeInMillis(), pendingIntent); 我试图改变它,但我得到了一个错误 说明资源路径位置类型 类型AlarmManager中的方法setRe

我试图让我的alarm manager每天在timepicker选择的时间重复,我对java编码和其他东西还是新手,我不知道在setRepeating()中写什么,在一个alarm manager示例中,我发现了这段代码

alarmManager.set(AlarmManager.RTC_WAKEUP, targetCal.getTimeInMillis(), pendingIntent);
我试图改变它,但我得到了一个错误 说明资源路径位置类型 类型AlarmManager中的方法setRepeating(int,long,long,pendingEvent)不适用于参数(int,long,pendingEvent)

帮忙

公共类AndroidTimeActivity扩展活动{
时间选择器myTimePicker;
按钮启动对话框;
按钮、按钮、键盘;
text查看text报警提示;
时间选择器;
复选框选择重复;
最终静态整数RQS_1=1;
/**在首次创建活动时调用*/
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
timePicker=(timePicker)findViewById(R.id.picker);
optRepeat=(复选框)findviewbyd(R.id.optRepeat);
textAlarmPrompt=(TextView)findViewById(R.id.alarmprompt);
buttonstartSetDialog=(按钮)findViewById(R.id.startSetDialog);
buttonstartSetDialog.setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v){
Calendar calNow=Calendar.getInstance();
Calendar calSet=(Calendar)calNow.clone();
set(Calendar.HOUR,timePicker.getCurrentHour());
set(Calendar.MINUTE,timePicker.getCurrentMinute());
calSet.set(日历秒,0);
calSet.set(日历毫秒,0);
如果(calSet.compareTo)(calNow)请尝试以下操作:

alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, targetCal.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pendingIntent);
setRepeating
中缺少的是需要设置4个参数。缺少的是间隔参数(第3个)。
AlarmManager
为间隔(如每日、半天等)声明了常量

如果要重复,请确保不要使用
alarmManager.set()”和
alarmManager.setRepeating`

此外,如果您想让用户选择是否重复,可以进行简单的布尔检查。如果重复,请使用
.setRepeating
,否则请使用
.set

编辑:我自己没有使用过
.setRepeating()
,我不确定它是否能与
.INTERVAL\u DAY
常量一起工作。您可能需要使用
.setInexactRepeating()
来代替。参数看起来完全相同:

alarmManager.setInexactRepeating(AlarmManager.RTC_WAKEUP, targetCal.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pendingIntent);

非常感谢您的帮助,先生!我会尝试一下,我真的很感激。如果它不起作用,请告诉我们。如果它不起作用,我们可能需要查看更多的代码,例如您正在创建
alarmManager
的类的片段。好的,我尝试了这两种方法,并通过更改日期在手机上进行了尝试,以查看它是否起作用不是吗,我下载了一个alarm manager示例并对其进行了修改,我认为它与日期有关,因为当我更改日期时,它不起作用。你说更改日期时它不起作用是什么意思?你是说如果不更改日期,它就起作用了吗?事实上,我只尝试在日期和时间中更改时间我的设置和它也不起作用,我认为它与if(calSet.compareTo(calNow)有关
alarmManager.setInexactRepeating(AlarmManager.RTC_WAKEUP, targetCal.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pendingIntent);