中英文网站建站睢县做网站的公司
web/
2025/10/2 8:19:52/
文章来源:
中英文网站建站,睢县做网站的公司,崂山区城市规划建设局网站,一起做网店的网站后台代理提醒简介
随着生活节奏的加快#xff0c;我们有时会忘记一些重要的事情或日子#xff0c;所以提醒功能必不可少。应用可能需要在指定的时刻#xff0c;向用户发送一些业务提醒通知。例如购物类应用#xff0c;希望在指定时间点提醒用户有优惠活动。为满足此类业务…
后台代理提醒简介
随着生活节奏的加快我们有时会忘记一些重要的事情或日子所以提醒功能必不可少。应用可能需要在指定的时刻向用户发送一些业务提醒通知。例如购物类应用希望在指定时间点提醒用户有优惠活动。为满足此类业务诉求HarmonyOS提供后台代理提醒功能在应用退居后台或退出后计时和提醒通知功能被系统后台代理接管。
后台代理提醒业务类型
倒计时类基于倒计时的提醒功能适用于短时的计时提醒业务。日历类基于日历的提醒功能适用于较长时间的提醒业务。闹钟类基于时钟的提醒功能适用于指定时刻的提醒业务。 后台代理提醒就是由系统后台进程代理应用的提醒功能。后台代理提醒服务通过reminderAgentManager模块提供提醒定义、创建提醒、取消提醒等能力。
后台代理提醒服务提供统一的提醒管理能力在应用退居后台或退出后计时和提醒通知功能被系统后台代理接管。 以新增一个9点的喝水提醒为例
假设用户在8点新增这个喝水提醒应用根据用户设置的信息生成提醒实例并发布提醒。由后台代理提醒服务调用系统服务启动计时。
到9点时系统唤醒后台代理提醒服务发布通知最终由通知服务触发桌面显示通知。 在整个流程中应用仅需
使用reminderAgentManager模块的ReminderRequest类定义提醒实例使用reminderAgentManager模块的publishReminder接口发布提醒。
无需关注计时和通知发布等功能如何实现。
若是删除提醒流程需要使用reminderAgentManager模块的cancelReminder接口取消提醒若是修改提醒流程则需要先删除旧的提醒再新增新的提醒。
给你的应用添加提醒 以闹钟应用为例实现提醒功能有以下前置条件 添加后台代理提醒使用权限。 module: {...requestPermissions: [{name: ohos.permission.PUBLISH_AGENT_REMINDER}]
}导入后台代理提醒reminderAgentManager模块将此模块命名为reminderAgent。 import reminderAgent from ohos.reminderAgentManager;如果是新增提醒实现步骤如下 用reminderAgent.ReminderRequest类定义提醒实例。 import reminderAgent from ohos.reminderAgentManager;
...export class ReminderService {public addReminder(alarmItem: ReminderItem, callback?: (reminderId: number) void) {let reminder this.initReminder(alarmItem);reminderAgent.publishReminder(reminder, (err, reminderId) {if (callback ! null) {callback(reminderId);}});}private initReminder(item: ReminderItem): reminderAgent.ReminderRequestAlarm {return {reminderType: item.remindType,hour: item.hour,minute: item.minute,daysOfWeek: item.repeatDays,title: item.name,ringDuration: item.duration * Constants.DEFAULT_TOTAL_MINUTE,snoozeTimes: item.intervalTimes,timeInterval: item.intervalMinute,actionButton: [{title: 关闭,type: reminderAgent.ActionButtonType.ACTION_BUTTON_TYPE_CLOSE},...],wantAgent: {pkgName: globalThis.bundleName,abilityName: globalThis.abilityName},notificationId: item.notificationId,...}}...
}发布提醒。 import reminderAgent from ohos.reminderAgentManager;
...export class ReminderService {public addReminder(alarmItem: ReminderItem, callback?: (reminderId: number) void) {let reminder this.initReminder(alarmItem);reminderAgent.publishReminder(reminder, (err, reminderId) {if (callback ! null) {callback(reminderId);}});}private initReminder(item: ReminderItem): reminderAgent.ReminderRequestAlarm {...}...
}如果需要删除提醒可以调用cancelReminder()接口实现。
import reminderAgent from ohos.reminderAgentManager;
...export class ReminderService {public deleteReminder(reminderId: number) {reminderAgent.cancelReminder(reminderId);}...
}如果需要修改提醒则需要先进行旧提醒的删除再新增新的提醒。
public async setAlarmRemind(alarmItem: AlarmItem) {let index await this.findAlarmWithId(alarmItem.id);if (index ! Constants.DEFAULT_NUMBER_NEGATIVE) {this.reminderService.deleteReminder(alarmItem.id);} else {...}this.reminderService.addReminder(alarmItem, (newId) {alarmItem.id newId;...})
}案例闹钟
介绍
本篇Codelab将介绍如何使用后台代理提醒实现一个简易闹钟。要求完成以下功能
展示指针表盘或数字时间。添加、修改和删除闹钟。展示闹钟列表并可打开和关闭单个闹钟。闹钟到设定的时间后弹出提醒。将闹钟的定时数据保存到轻量级数据库。 相关概念 Canvas提供画布组件用于自定义绘制图形。 CanvasRenderingContext2D使用RenderingContext在Canvas组件上进行绘制绘制对象可以是矩形、文本、图片等。 后台代理提醒开发应用时开发者可以调用后台提醒发布的接口创建定时提醒包括倒计时、日历、闹钟三种提醒类型。使用后台代理提醒能力后应用可以被冻结或退出计时和弹出提醒的功能将被后台系统服务代理。本应用中主要使用到后台代理提醒的两个接口 publishReminder 发布一个后台代理提醒使用callback方式实现异步调用该方法需要申请通知弹窗Notification.requestEnableNotification后才能调用。 cancelReminder 取消指定id的提醒使用callback方式实现异步调用。
相关权限
本篇Codelab需要在module.json5中配置如下权限
requestPermissions: [{name: ohos.permission.PUBLISH_AGENT_REMINDER,reason: $string:reason,usedScene: {abilities: [EntryAbility],when: inuse}}
]使用说明
打开应用添加一个闹钟闹钟到设定的时间后弹出提醒。修改闹钟的时间闹钟到设定的时间后弹出提醒。删除闹钟。展示闹钟列表并可打开和关闭单个闹钟。
约束与限制
本示例仅支持标准系统上运行支持设备华为手机。本示例为Stage模型支持API version 9。本示例需要使用DevEco Studio 3.1 Release版本进行编译运行。
源码地址
在后台「Android指南」回复关键字「闹钟」即可获取。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/85521.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!