闹钟管理器在特定时间设置每日闹钟?

2024-06-09

我一直在开发这个应用程序,该应用程序应该每天在给定时间运行(周末除外)。我用过一个AlarmBroadCastReceiver在给定时间触发特定代码块。我的代码中有这个代码AlarmBroadCastReceiver class:

public void SetAlarm(Context context) {
    AlarmManager am=(AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
    Intent intent = new Intent(context, AlarmManagerBroadcastReceiver.class);
    intent.putExtra(ONE_TIME, Boolean.FALSE);
    PendingIntent pi = PendingIntent.getBroadcast(context, 0, intent, 0);

    Calendar calendar = Calendar.getInstance();
    calendar.setTimeInMillis(System.currentTimeMillis());
    calendar.set(Calendar.HOUR_OF_DAY, 2);
    calendar.set(Calendar.MINUTE, 30);
    calendar.set(Calendar.SECOND, 0);
    am.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 0, pi);

}

基本上我会尝试在那个时间设置一个重复闹钟。

然后按一下按钮,我就可以在 MainActivity 中调用它:

public void onStartAlarmClicked(View view){
    Context context = this.getApplicationContext();
    if(alarm != null){
        Log.e(TAG, "starting alarm");
        alarm.SetAlarm(context);
    }else{
        Log.e(TAG, "Alarm is null");
    }
}

where alarm是一个对象AlarmBroadCastReceiver class.

我遇到的问题是代码只触发一次。一旦到达 2:30,它就会开火。但是,当我将时间设置回 2:29 并等待 2:30,或者将日期向前设置 1 天,然后将时间设置为 2:20 并等待 2:30 时,代码不再触发。

我有一种感觉,我忽略了一些关于设置闹钟时间的相当简单的事情,但我现在看不到它。


找到了更好的答案这个答案。 https://stackoverflow.com/a/25986730/1374416稍微调整了一下。

public void Set12nnAlarm(Context context) {

    AlarmManager am=(AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
    Intent intent = new Intent(context, AlarmManagerBroadcastReceiver.class);
    intent.putExtra(ONE_TIME, Boolean.FALSE);
    PendingIntent pi = PendingIntent.getBroadcast(context, 0, intent, 0);

    // every day at 9 am
    Calendar calendar = Calendar.getInstance();

    calendar.setTimeInMillis(System.currentTimeMillis());

    // if it's after or equal 9 am schedule for next day
    if (Calendar.getInstance().get(Calendar.HOUR_OF_DAY) >= 9) {
        Log.e(TAG, "Alarm will schedule for next day!");
        calendar.add(Calendar.DAY_OF_YEAR, 1); // add, not set!
    }
    else{
        Log.e(TAG, "Alarm will schedule for today!");
    }
    calendar.set(Calendar.HOUR_OF_DAY, 9);
    calendar.set(Calendar.MINUTE, 0);
    calendar.set(Calendar.SECOND, 0);


    am.setInexactRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),
            AlarmManager.INTERVAL_DAY, pi);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

闹钟管理器在特定时间设置每日闹钟? 的相关文章

  • 使用匕首柄作为依赖注入来处理多个改造客户端?

    我想在我的 android 应用程序中使用两个不同的后端 具有不同的响应格式 我使用 hilt 作为依赖注入 并对网络调用进行改造 这非常适合工作 因为我已经添加了第二个服务器网络文件和应用程序模块 所以它给了我错误 该错误列在最后 我需要
  • 无法获取项目的未知属性“assembleRelease”

    将 Android Studio 更新到版本 2 2 并将 gradle 插件更新到 2 2 0 后 出现以下错误 错误 32 1 评估项目 jobdispatcher 时出现问题 无法获取 org gradle api Project 类
  • 使用 ColorMatrix 调整亮度

    我正在尝试使用 ColorMatrix 调整图像的亮度 当尝试调整色相时 您可以在 Photoshop 中看到此选项 亮度和亮度也是两个不同的功能 但我不知道要更改哪些值才能实现此目的 目前我可以使用此代码更改色调 public stati
  • Kotlin Android Firebase 数据库哈希映射转换为类

    我正在尝试从 firebase 数据库获取数据 断点显示它正在获取数据 但看起来我没有正确地将其分配给我的班级 这会导致此异常 java lang ClassCastException 无法将 java util HashMap 转换为 班
  • 服务如何在后台运行 - Android

    今天的采访中我被问到了这个问题 什么是服务 我对此的回答是 Service 是 Android 的基本组件 它没有 UI 并且在后台运行 Service 是否在主线程上运行 不 那么它是如何在后台运行的呢 我心里一片空白 有人可以解释一下如
  • Android Widget ID 是否持久

    在从桌面删除该 Widget 实例之前 您从操作系统收到的用户桌面上特定 Widget 实例的 Widget ID 是否一致 我找不到任何明确说明这一点的文档 但我假设这是因为文档说您可以使用小部件 id 来存储任何实例配置信息 我想将一些
  • 如何从Slog中查看日志

    如何查看 Slog API 生成的日志 是否有任何选项可以查看系统缓冲区中的日志 我的意思是查看我们使用的无线电缓冲区的日志 adb logcat b 无线电 而这个日志是由Android的Log类生成的 Slog API 的输出在哪里 怎
  • Android 游戏偶尔出现延迟

    我正在用 Java 制作一个简单的 Android 游戏 我注意到每 20 40 秒就会出现一些烦人的延迟 首先 我认为它们是由垃圾收集器引起的 但当我检查 LogCat 时 我发现游戏滞后时没有垃圾收集 每当游戏开始滞后时 我都会标记日志
  • 在 Android 中使用 AES 加密的最佳实践是什么?

    我为什么问这个问题 我知道人们对 AES 加密存在很多疑问 即使对于 Android 也是如此 如果您在网络上搜索 会发现很多代码片段 但在每个页面上 在每个 Stack Overflow 问题中 我都发现了另一个具有重大差异的实现 所以我
  • 片段活动中的 commitAllowingStateLoss()

    我的应用程序使用片段活动 它仅处于纵向模式 无法旋转屏幕 最初我使用的是commit 方法 但现在我计划不加区别地将这些更改为commitAllowingStateLoss 对于碎片活动 是否有任何理由不不加区别地执行此操作而不重新评估我使
  • 通过配置更改保留 CoroutineScope 的干净方法,无需 ViewModel

    我知道建议是在我们的 Activity 中使用 ViewModel 这样我们就可以使用它viewModelScope 由于 ViewModel 的寿命比 Activity 的寿命长 因此我们不必取消以下作业activity onDestro
  • 如何防止应用程序被盗(针对Android应用程序)?

    我想知道防止人们窃取我的应用程序的最有效方法是什么 在线下载 apk 的副本而不是购买它 我已经花了一个lot特别是 Droidbox 上的时间 并且不会发布 Sync 直到我可以保证提供专业版本的非法副本的人无法发布 有人实施过这个吗 我
  • DialogFragment 关闭事件

    我需要处理 DialogFragment 的结尾 在调用 dismiss 之后 例如 我会在关闭后 包含 片段的活动内显示一个 toast 我该如何处理该事件 覆盖onDismiss 在你的DialogFragment中 或者使用setOn
  • Android:从 PhoneGap 应用打开 Play 商店链接

    我想从我的phonegap 3 4 应用程序打开一个指向Google Play 商店的链接 呼唤market details id com google android apps maps导致 ActivityNotFoundExcepti
  • Android 两个 Activity 之间的共享元素转换不起作用

    在我的应用程序中 我尝试使用新引入的活动之间共享的元素 如果共享元素具有固定位置 例如 android layout gravity top 但是当视图被锚定时问题就出现了 我的第一个活动如下所示
  • 如何以编程方式检测android中可用的底部软导航栏?

    我试图通过 android 程序确定软导航栏 我没有找到直接的方法来确定 有没有办法找到导航栏的可用性 软导航栏图像在这里 以下方法对我有用并在许多设备上进行了测试 public boolean hasNavBar Resources re
  • Android:我的应用程序太大并给出“无法执行 dex:方法 ID 不在 [0, 0xffff]: 65536”?

    我正在尝试将我的应用程序与 Box Dropbox 和 Google Drive 集成 所有这 3 项服务都需要许多第 3 方 jar 此外 我的应用程序已经需要一些第三方 jar 现在 当我尝试从 Eclipse 运行我的应用程序时 出现
  • FCM 主题是否适合更多用户?

    我对使用主题消息有点困惑 我的场景是根据通知触发一些作业 请帮助我更多地了解这一点 如果我们正在处理大量用户 则可以使用 FCM 主题向用户发送通知 我们可以只使用数据消息和主题消息吗 使用主题发送的消息是否保证送达 我在 FCM 文档中看
  • 如何从另一个活动更新 Recyclerview 数据

    我有两个活动 MainActivity 和 Addlogactivity 我正在更新 Addlogactivity 中的数据 该数据应显示在 mainactivity recyclerview 中 数据未在数据库中更新 MianActivi
  • 将主题应用到 v7 支持操作栏

    我正在使用support v7库来实现ActionBar在我的应用程序中 我的styles xml file

随机推荐

  • UIButton 分组按钮

    我正在尝试创建一个完全像这样设置的按钮 我该怎么做 有人可以给我看代码吗 有没有办法像这样对 UIButton 进行 分组 你会想要使用一个UITableViewController部分设置为UITableViewStyleGrouped
  • 上传带有附加信息的文件(Angular 8 到 C# Core 3)

    我终于弄清楚如何将文件从 Angular 8 前端上传到 C Net Core 3 0 后端 API 控制器 但为了获得我完全需要的内容 我还有一个类定义了用户设置的文件内容 例如标题行 列值等 也需要传入 在客户端 我只需创建一个 For
  • 二元运算符“==”不能应用于“UILabel?”类型的操作数和“字符串”

    错误 二元运算符 无法应用于 UILabel 类型的操作数和 字符串 import UIKit class ViewController UIViewController let Soft 5 let Medium 8 let Hard 1
  • django-过滤器和聚合函数

    这是一个特定于应用程序的问题 Django 过滤器 https github com alex django filter 这里给没用过的人简单说明一下 f ProductFilter request GET queryset Produc
  • 从 Jenkins Pipeline 捕获 shell 脚本输出

    我正在尝试提取 git 分支并在 Jenkinsfile 中提交信息 如下所示 def commit sh returnStdout true script git rev parse HEAD trim def branch sh ret
  • 如何使用提交“--change”标志更新 Docker 容器路径?

    我一直在尝试使用更新容器 PATH env 变量值docker commit change 标志 但我必须缺乏对所涉及的某些部分的理解 因为我无法获得想要的结果 Given docker run it centos 6 bin bash r
  • 如何在其他项目中添加NLog类库项目

    我已经用 C 创建了一个控制台项目 在该项目中我使用 NLog 进行日志记录 当我运行该项目时 它成功登录到多个目标 例如控制台 文件 EventLog 以及 Sentinal 但是 当我将此项目作为类库并尝试添加对另一个项目的引用时 它不
  • Android底部导航栏定制

    我已经成功实现了简单的底部栏 它看起来像图 1 但我想进一步自定义它 这样它就可以看起来像 Youtube 的 Android 应用程序中的底部栏 当您单击其中一个项目时 它会传播阴影效果 我当前的底部栏 YouTube 的底部栏 我还想将
  • Ruby“定义”?操作员工作错误?

    所以 我们有代码 class Foo def bar puts Before existent defined some variable puts Before not existent defined nonexistent varia
  • 是否可以在 Angular 6 中生成 QR 码并将其导出为 pdf,而不将其渲染为 html

    我想使用将 QR 码导出为 pdfjsPDF而不在 html 中显示它 我尝试了很多库 qrcode angularx qrcode 你可以使用ngx 二维码 https github com techiediaries ngx qrcod
  • Vim 错误格式和 jslint

    我正在尝试让 makeprg 和 errorformat 与 VIM 和 jslint 一起使用 但似乎无法为我的生活提供正确的错误格式 我正在使用 jslint 的 NodeJS 版本 它会产生如下结果 1 116 9 The body
  • 在 C# 中使用 Nsubstitute 模拟具有固定参数的可选参数的函数返回 null

    我一直在尝试模拟一个包含带有固定参数的可选参数的函数 但每次我得到一个空值 这是我在接口中定义的函数 我想模拟它 List GetEntitiesByIDs List
  • 以编程方式更改动画规则中的 webkit-transformation 值

    我有这个样式表 webkit keyframes run 0 webkit transform translate3d 0px 0px 0px 100 webkit transform translate3d 0px 1620px 0px
  • reloadData 不调用 cellForRowAtIndexPath

    我的项目使用分割视图控制器 其中包含一个带有课程时间列表的表格视图和一个详细说明课程时间的主视图 当应用程序首次加载时 表格视图中没有任何条目 主视图显示登录屏幕 当用户登录时 表视图应该重新加载包含每个班级标题的文本 我无法正确重新加载数
  • 如何清理除图像网址之外的 html 字符串?

    我正在尝试清理 html 字符串 但我想将图像网址列入白名单 我的代码 ActionView Base full sanitizer sanitize phrase meaning tags w img attributes w src 这
  • 将 Scala 文件转换为 Dll

    我有一些使用 IntelliJ 和 SBT Plugin 编写的 scala 代码 并希望将代码作为 C 的 DLL 提供给我 我已经尝试使用 ikvmc 我通过 package 将所有类打包在一个罐子中 之后 我手动设置一个 jar 其中
  • 处理多个自动重定向的正确方法是什么?

    我有一个网站 基本上允许客户构建一个包含可配置项目的购物车 用户将选择一个项目 系统会提示他们选择他们想要的第一个选项 然后他们将被发送到第二个步骤 在那里他们选择第二个选项 等等 步骤数和选项数是可变的 因为它们是由客户定义的 通常该项目
  • 指向虚拟成员函数的指针。它是如何工作的?

    考虑以下 C 代码 class A public virtual void f 0 int main void A f A f 如果我不得不猜测 我会说 A f 在这种情况下意味着 A 的 f 实现的地址 因为指向常规成员函数和虚拟成员函数
  • 带有条件的多个表的 mySQL Left Join

    我有个问题 我有4张桌子 Invoice Payment 发票 客户和日历 基本上 我有下面的查询 它运行良好 除了没有 date due 的月份不会返回 即仅返回包含 date due 的月份 注意 日历表仅列出一年中的每一天 它包含一个
  • 闹钟管理器在特定时间设置每日闹钟?

    我一直在开发这个应用程序 该应用程序应该每天在给定时间运行 周末除外 我用过一个AlarmBroadCastReceiver在给定时间触发特定代码块 我的代码中有这个代码AlarmBroadCastReceiver class public