当前位置: 首页 > 知识库问答 >
问题:

警报管理器安排一个事件在不同的时间每天发射

姚钊
2023-03-14
    AlarmManager alarmMgr0 = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
    PendingIntent pi = PendingIntent.getBroadcast(this, 0, i, PendingIntent.FLAG_UPDATE_CURRENT);

 Calendar timeOff0 = Calendar.getInstance();

  timeOff0.set(Calendar.YEAR, 2013);
  timeOff0.set(Calendar.MONTH, 6);
  timeOff0.set(Calendar.DAY_OF_MONTH,1 );

  timeOff0.set(Calendar.HOUR_OF_DAY, 8);
  timeOff0.set(Calendar.MINUTE, 51);
  timeOff0.set(Calendar.SECOND, 00);

  //set that timer as a RTC Wakeup to alarm manager object
  alarmMgr0.set(AlarmManager.RTC_WAKEUP, timeOff0.getTimeInMillis(), pi);



  PendingIntent pi1 = PendingIntent.getBroadcast(this, 0, i, PendingIntent.FLAG_UPDATE_CURRENT);




Calendar timeOff1 = Calendar.getInstance();



 timeOff1.set(Calendar.YEAR, 2013);
timeOff1.set(Calendar.MONTH, 6);
timeOff1.set(Calendar.DAY_OF_MONTH,1 );
timeOff1.set(Calendar.HOUR_OF_DAY, 8);
timeOff1.set(Calendar.MINUTE, 54);
timeOff1.set(Calendar.SECOND, 00);

//set that timer as a RTC Wakeup to alarm manager object
alarmMgr0.set(AlarmManager.RTC_WAKEUP, timeOff1.getTimeInMillis(), pi1);


}

这是我的报警器

公共类OneShotAlarm扩展BroadcastReceiver

public void onReceive(Context context, Intent intent)
{

toast.Maketext(context,r.string.one_shot_received,toast.length_long).show();MediaPlayer mp=MediaPlayer.create(context,r.raw.azan2);mp.start();

}

共有1个答案

糜征
2023-03-14

您的广播接收器不应呼叫媒体播放器。有了警报器,你永远不知道电话是否会被唤醒。广播接收机在很长一段时间内不会唤醒电话。它会醒来着火,然后回去睡觉。为了正确地实现这一点,您需要广播接收器来启动服务。然后服务将启动媒体播放器。下面是一个开放源码的示例程序。它还包括一个wakelock,以确保您的程序在闹钟打开时不会进入睡眠状态。检查广播接收机和服务。他们一起去。祝你好运快乐编码。

要使它每天运行,您需要从广播接收器启动警报调度服务来调度下一个警报。一次只能发出一个报警器,所以让你的程序在下一个报警器发射时就安排好它,这样甲板上一次实际上只有一个报警器。

Android闹钟

 类似资料:
  • 我有一个每天运行一次的批处理作业。 在作业结束时,我提交了一个指标,其中包含已处理项目的计数。 如果有一天这个指标没有更新,我想发出警告。 在 http://metrics.librato.com 创建警报时,我可以检查“未报告”的最长时间是 60 分钟。 我想也许我可以创建一个综合指标,获取过去24小时的平均变化率,并在变化率为零时发出警报。 我一直在努力: 然而,似乎因为我只记录了一个事件,在

  • 我想创建一个闹钟,它会在预定义的时间每天响。我是否需要为每小时创建一个PendingIntent并将其添加到AlarmManager中,或者是否有更简单的方法来实现这一点?

  • 问题内容: 我有一个运行很长时间的python脚本,我想每天早上01:00做一些事情。 我一直在查看sched模块和Timer对象,但看不到如何使用它们来实现此目的。 问题答案: 您可以这样做: 这将在第二天凌晨1点执行一个函数(例如hello_world)。 编辑: 正如@PaulMag所建议的,更一般而言,为了检测是否必须由于该月末到达而必须重置该月的某天,在此上下文中y的定义应为: 使用此修

  • 嗨,我目前正在使用警报管理器。我写了下面给出的代码。根据代码,警报管理器应该在10秒后触发,但在我的代码中,警报管理器会立即触发。请帮助。 还有我的警报接收课 我已经在清单中添加了所需的权限。

  • 我有一个长期运行的python脚本,我想在每天早上1:00做一些事情。 我一直在研究sched模块和Timer对象,但我不知道如何使用它们来实现这一点。