Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在android中,如何设置报警管理器,使其在一周中的每一天和每一个特定时间启动?_Java_Android_Alarmmanager - Fatal编程技术网

Java 在android中,如何设置报警管理器,使其在一周中的每一天和每一个特定时间启动?

Java 在android中,如何设置报警管理器,使其在一周中的每一天和每一个特定时间启动?,java,android,alarmmanager,Java,Android,Alarmmanager,例如,我想有一个闹钟,每个星期天中午都会响。。。。如何执行此操作?使用AlarmManager类: 课程概述 此类提供对 系统报警服务。这些允许你 计划要运行的应用程序 在将来的某个时候。当 警报响起,原来的意图 已注册,由 系统,自动启动 目标应用程序(如果不是) 已经在运行了。已登记的警报为 在设备处于睡眠状态时保留 (并且可以选择唤醒设备 如果他们在这段时间内爆炸),但是 如果将其关闭,将被清除 然后重新启动 使用public void set(int-type、long-trigger

例如,我想有一个闹钟,每个星期天中午都会响。。。。如何执行此操作?

使用AlarmManager类:

课程概述

此类提供对 系统报警服务。这些允许你 计划要运行的应用程序 在将来的某个时候。当 警报响起,原来的意图 已注册,由 系统,自动启动 目标应用程序(如果不是) 已经在运行了。已登记的警报为 在设备处于睡眠状态时保留 (并且可以选择唤醒设备 如果他们在这段时间内爆炸),但是 如果将其关闭,将被清除 然后重新启动

使用
public void set(int-type、long-triggeratitime、pendingent操作)
设置触发时间

使用
void setRepeating(int类型、长触发时间、长间隔、挂起事件操作)
计划重复报警

这里有一个完整的例子。我真的不记得所有的日历方法,所以我相信这部分可以简化,但这只是一个开始,您可以在以后对其进行优化:

AlarmManager alarm = (AlarmMAnager) Context.getSystemService(Context.ALARM_SERVICE);
Calendar timeOff = Calendar.getInstance();
int days = Calendar.SUNDAY + (7 - timeOff.get(Calendar.DAY_OF_WEEK)); // how many days until Sunday
timeOff.add(Calendar.DATE, days);
timeOff.set(Calendar.HOUR, 12);
timeOff.set(Calendar.MINUTE, 0);
timeOff.set(Calendar.SECOND, 0);

alarm.set(AlarmManager.RTC_WAKEUP, timeOff.getTimeInMillis(), yourOperation);

最后,如果设置为(sun、tus、fri),则必须为这三天创建三个警报 以下代码设置每周日报警,并发送dayOfWeek=1

 public void setAlarm_sun(int dayOfWeek) {
     cal1.set(Calendar.DAY_OF_WEEK, dayOfWeek);
     Toast.makeText(getApplicationContext(), "sun "+cal1.get(Calendar.DAY_OF_WEEK), 222).show();

     Toast.makeText(getApplicationContext(), "Finsh", 222).show();

        Intent intent = new Intent(this, SecActivity.class);
        PendingIntent pendingIntent0 = PendingIntent.getBroadcast(this, 0,
                intent, 0);
        PendingIntent pendingIntent = PendingIntent.getActivity(this, 12345,
                intent, PendingIntent.FLAG_UPDATE_CURRENT);

         Long alarmTime = cal1.getTimeInMillis();
         AlarmManager am = (AlarmManager) getSystemService(Activity.ALARM_SERVICE);

       // am.setRepeating(AlarmManager.RTC_WAKEUP, alarmTime,7* 24 * 60 * 60 * 1000 , pendingIntent);
        am.setRepeating(AlarmManager.RTC_WAKEUP, alarmTime,7* 24 * 60 * 60 * 1000 , pendingIntent);

} 

我想知道一些非常相似的事情。有没有办法每30分钟到一小时举办一次活动?也许找个老太婆的工作?只是想知道安卓能为这个问题提供什么。谢谢,我知道我需要上一节课,只是不知道如何让它在每个星期天的指定时间重复time@will我更新了答案。它是同一AlarmManager api的一部分。基本上,你用一周的时间间隔(604800000毫秒)好吧,那么我怎么才能得到周日呢,尽管我对此有点困惑