安排和编辑在特定时间发生的事件 android
scheduling and editing an event to occur at a specific time android
我正在构建一个需要在特定日期和时间执行操作并在执行此任务前一小时发出通知的应用程序。
我搜索并发现警报管理器 class 可用于此目的,但我不确定如何使用它。此外,如果将来在应用程序关闭并重新打开后取消或编辑它。
我创建了一个 SQlite 数据库,用于存储信息以及事件发生的日期和时间。
谢谢
Google 提供了一个 "Scheduler" code sample 来做你想做的事情:在给定时间显示通知。此示例还展示了如何取消警报。
编辑:我刚刚又看了一遍示例代码,你是对的,示例没有解释如何在应用程序关闭并重新打开后获取 PendingIntent。如果 PendingIntent 不存在,以下代码将创建它;如果它已经存在,则它 returns 现有的 PendingIntent,感谢 FLAG_UPDATE_CURRENT。所以你不必关心警报是否已经启动:只需获取 Pending 意图,然后取消它。
Intent intent = new Intent(context, MyAlarmReceiver.class);
pendingAlarmIntent = PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
....
pendingAlarmIntent.cancel();
我正在构建一个需要在特定日期和时间执行操作并在执行此任务前一小时发出通知的应用程序。
我搜索并发现警报管理器 class 可用于此目的,但我不确定如何使用它。此外,如果将来在应用程序关闭并重新打开后取消或编辑它。
我创建了一个 SQlite 数据库,用于存储信息以及事件发生的日期和时间。
谢谢
Google 提供了一个 "Scheduler" code sample 来做你想做的事情:在给定时间显示通知。此示例还展示了如何取消警报。
编辑:我刚刚又看了一遍示例代码,你是对的,示例没有解释如何在应用程序关闭并重新打开后获取 PendingIntent。如果 PendingIntent 不存在,以下代码将创建它;如果它已经存在,则它 returns 现有的 PendingIntent,感谢 FLAG_UPDATE_CURRENT。所以你不必关心警报是否已经启动:只需获取 Pending 意图,然后取消它。
Intent intent = new Intent(context, MyAlarmReceiver.class);
pendingAlarmIntent = PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
....
pendingAlarmIntent.cancel();