一旦重复闹钟在一周中的android [英] Repeat Alarm once in a week in android

查看:155
本文介绍了一旦重复闹钟在一周中的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的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆