一旦重复闹钟在一周中的android

编程入门 行业动态 更新时间:2024-10-25 00:25:26
本文介绍了一旦重复闹钟在一周中的android的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我想开发一个我的应用程序运行在用户的固定时间指定一个工作日报警功能。这里的问题是,我的调度运行的所有天,而不是在指定的日期运行。这里是$ C $词写了这个,请帮助解决这个问题。

日历calNow = Calendar.getInstance();                 SimpleDateFormat的simpDate;                 simpDate =新的SimpleDateFormat(KK:MM:SS);                 如果(in_Date == 1)                 {                     calNow.set(Calendar.HOUR_OF_DAY,hourOfDay);                     calNow.set(Calendar.MINUTE,分钟);                     calNow.set(Calendar.SECOND,0);                     calNow.set(Calendar.MILLISECOND,0);                 }             否则,如果(in_Date == 2)                 {                     calNow.set(Calendar.HOUR_OF_DAY,hourOfDay);                     calNow.set(Calendar.MINUTE,分钟);                     calNow.set(Calendar.SECOND,0);                     calNow.set(Calendar.MILLISECOND,0);                     calNow.set(Calendar.DAY_OF_WEEK,in_SelectedDay);                 }                 etTime.setText(simpDate.format(calNow.getTime()));                 秒= calNow.getTimeInMillis(); 私人无效setAlarm(){     //etTime.setText(simpDate.format(calNow.getTime()));     意向意图=新的意图(getBaseContext(),AlarmReceiver.class);     pendingIntent = PendingIntent.getBroadcast(getBaseContext(),RQS_1,意向,0);     AlarmManager alarmManager =(AlarmManager)getSystemService(Context.ALARM_SERVICE);      如果(in_Date == 1)      {        alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,秒,alarmManager.INTERVAL_DAY,pendingIntent);      }     否则,如果(in_Date == 2)     {         alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,秒,1 * 60 * 60 * 1000,pendingIntent);     } }

解决方案

alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,秒,alarmManager.INTERVAL_DAY,pendingIntent);

在此行中,您设置的开始时间,用户选择的日子,但随后将间隔设置为 INTERVAL_DAY 。

您应该使用 INTERVAL_DAY * 7 ,以确保它重复每周一次改为:

alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,秒,alarmManager.INTERVAL_DAY * 7,pendingIntent);

I am trying to develop alarm functionality in a my app which runs on a week days specified by user on fixed time. Problem here is that my scheduler running for all days instead of running on specified day . here is the code i wrote for this please help to fix this

Calendar calNow = Calendar.getInstance(); SimpleDateFormat simpDate; simpDate = new SimpleDateFormat("kk:mm:ss"); if(in_Date==1) { calNow.set(Calendar.HOUR_OF_DAY, hourOfDay); calNow.set(Calendar.MINUTE, minute); calNow.set(Calendar.SECOND, 0); calNow.set(Calendar.MILLISECOND, 0); } else if(in_Date==2) { calNow.set(Calendar.HOUR_OF_DAY, hourOfDay); calNow.set(Calendar.MINUTE, minute); calNow.set(Calendar.SECOND, 0); calNow.set(Calendar.MILLISECOND, 0); calNow.set(Calendar.DAY_OF_WEEK,in_SelectedDay); } etTime.setText(simpDate.format(calNow.getTime())); Seconds=calNow.getTimeInMillis(); private void setAlarm(){ //etTime.setText(simpDate.format(calNow.getTime())); Intent intent = new Intent(getBaseContext(), AlarmReceiver.class); pendingIntent = PendingIntent.getBroadcast(getBaseContext(), RQS_1, intent, 0); AlarmManager alarmManager = (AlarmManager)getSystemService(Context.ALARM_SERVICE); if(in_Date==1) { alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, Seconds,alarmManager.INTERVAL_DAY,pendingIntent); } else if(in_Date==2) { alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, Seconds,1 * 60 * 60 * 1000,pendingIntent); } }

解决方案

alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, Seconds,alarmManager.INTERVAL_DAY,pendingIntent);

In this line you set the start time to the user selected day, but then set the interval to INTERVAL_DAY.

You should use INTERVAL_DAY * 7 to make sure it repeats on a weekly basis instead:

alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, Seconds,alarmManager.INTERVAL_DAY * 7,pendingIntent);

更多推荐

一旦重复闹钟在一周中的android

本文发布于:2023-11-27 05:10:54,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1636735.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:闹钟   android

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!