介绍
本篇Codelab将介绍如何使用后台代理提醒,实现一个简易闹钟。要求完成以下功能:
- 展示指针表盘或数字时间。
- 添加、修改和删除闹钟。
- 展示闹钟列表,并可打开和关闭单个闹钟。
- 闹钟到设定的时间后弹出提醒。
- 将闹钟的定时数据保存到轻量级数据库。

相关概念
- Canvas:提供画布组件,用于自定义绘制图形。
- CanvasRenderingContext2D:使用RenderingContext在Canvas组件上进行绘制,绘制对象可以是矩形、文本、图片等。
- 后台代理提醒:开发应用时,开发者可以调用后台提醒发布的接口创建定时提醒,包括倒计时、日历、闹钟三种提醒类型。使用后台代理提醒能力后,应用可以被冻结或退出,计时和弹出提醒的功能将被后台系统服务代理。本应用中主要使用到后台代理提醒的两个接口:publishReminder 发布一个后台代理提醒,使用callback方式实现异步调用,该方法需要申请通知弹窗Notification.requestEnableNotification后才能调用。cancelReminder 取消指定id的提醒,使用callback方式实现异步调用。
相关权限
本篇Codelab需要在module.json5中配置如下权限:
"requestPermissions": [
{
"name": "ohos.permission.PUBLISH_AGENT_REMINDER"
}
]
环境搭建
软件要求
- DevEco Studio版本:DevEco Studio 3.1 Release。
- OpenHarmony SDK版本:API version 9。
硬件要求
- 开发板类型:润和RK3568开发板。
- OpenHarmony系统:3.2 Release。
环境搭建
完成本篇Codelab我们首先要完成开发环境的搭建,本示例以RK3568开发板为例,参照以下步骤进行:
- 获取OpenHarmony系统版本:标准系统解决方案(二进制)。以3.2 Release版本为例:

2.搭建烧录环境。
- 完成DevEco Device Tool的安装
- 完成RK3568开发板的烧录
3.搭建开发环境。
- 开始前请参考工具准备,完成DevEco Studio的安装和开发环境配置。
- 开发环境配置完成后,请参考使用工程向导创建工程(模板选择“Empty Ability”)。
- 工程创建完成后,选择使用真机进行调测。
代码结构解读
本篇Codelab只对核心代码进行讲解。
├──entry/src/main/ets // 代码区
│ ├──common
│ │ ├──constants
│ │ │ ├──AlarmSettingType.ets // 闹钟设置类型枚举
│ │ │ ├──CommonConstants.ets // 公共常量类
│ │ │ ├──DetailConstant.ets // 详情页常量类
│ │ │ └──MainConstant.ets // 首页常量类
│ │ └──utils
│ │ ├──DataTypeUtils.ets // 数据类型工具类
│ │ ├──DimensionUtil.ets // 屏幕适配工具类
│ │ └──GlobalContext.ets // 全局变量工具类
│ ├──entryability
│ │ └──EntryAbility.ets // 程序入口类
│ ├──model
│ │ ├──database
│ │ │ ├──PreferencesHandler.ets // 轻量级数据库操作类
│ │ │ └──PreferencesListener.ets // 轻量级数据库回调接口
│ │ └──ReminderService.ets // 系统后台提醒服务类
│ │──pages
│ │ ├──DetailIndex.ets // 详情页入口文件
│ │ └──MainIndex.ets // 主页入口文件
│ │──view
│ │ ├──Detail
│ │ │ ├──dialog
│ │ │ │ ├──CommonDialog.ets // 公共Dialog组件
│ │ │ │ ├──DurationDialog.ets // 闹铃时长选择Dialog组件
│ │ │ │ ├──IntervalDialog.ets // 闹铃间隔选择Dialog组件
│ │ │ │ ├──RenameDialog.ets // 闹铃名设置Dialog组件
│ │ │ │ └──RepeatDialog.ets // 闹铃重复设置Dialog组件
│ │ │ ├──DatePickArea.ets // 详情页时间选择组件
│ │ │ └──SettingItem.ets // 详情页设置组件
│ │ ├──Main
│ │ │ ├──AlarmList.ets // 主页闹钟列表组件
│ │ │ ├──AlarmListIt

本文详细介绍了如何在HarmonyOS应用中利用Canvas绘制时钟、CanvasRenderingContext2D进行图形绘制,并结合后台代理提醒功能实现闹钟的添加、修改和删除,以及数据存储。通过DevEcoStudio和OpenHarmonySDK进行环境配置,适合初学者了解鸿蒙生态应用开发实践。
最低0.47元/天 解锁文章
7912

被折叠的 条评论
为什么被折叠?



