HarmonyOS 鸿蒙Next中Lite Wearable应用如何在后台运行

HarmonyOS 鸿蒙Next中Lite Wearable应用如何在后台运行 开发了一款倒计时提醒软件,在我新购入的WATCH GT 5上运行测试,目前遇到如下问题:

应用主页是一个页面显示倒计时,但是当手表黑屏后,再次唤醒手表,应用会被重新打开,不能在后台运行,请问华为的Lite Wearable应用如何在后台运行,系统自带的倒计时工具是可以的,但是我目前没有找到相应的接口方法,请晓得大佬不吝赐教

4 回复

可以参考申请代理提醒,代理提醒参考示例demo

代理提醒权限开发流程:

  1. 申请ohos.permission.PUBLISH_AGENT_REMINDER权限,配置方式请参阅声明权限

  2. 请求通知授权。获得用户授权后,才能使用代理提醒功能。

  3. 导入模块。

import { reminderAgentManager } from '@kit.BackgroundTasksKit';
import { notificationManager } from '@kit.NotificationKit';
import { BusinessError } from '@kit.BasicServicesKit';
  1. 定义目标提醒代理。开发者根据实际需要,选择定义如下类型的提醒。如下定义倒计时实例。
let targetReminderAgent: reminderAgentManager.ReminderRequestTimer = {
  reminderType: reminderAgentManager.ReminderType.REMINDER_TYPE_TIMER,   // 提醒类型为倒计时类型
  triggerTimeInSeconds: 10,
  actionButton: [ // 设置弹出的提醒通知信息上显示的按钮类型和标题
    {
      title: 'close',
      type: reminderAgentManager.ActionButtonType.ACTION_BUTTON_TYPE_CLOSE
    }
  ],
  wantAgent: {     // 点击提醒通知后跳转的目标UIAbility信息
    pkgName: 'com.example.myapplication',
    abilityName: 'EntryAbility'
  },
  title: 'this is title', // 指明提醒标题
  content: 'this is content', // 指明提醒内容
  expiredContent: 'this reminder has expired', // 指明提醒过期后需要显示的内容
  notificationId: 100, // 指明提醒使用的通知的ID号,相同ID号的提醒会覆盖
  slotType: notificationManager.SlotType.SOCIAL_COMMUNICATION // 指明提醒的Slot类型
}
  1. 发布相应的提醒代理。代理发布后,应用即可使用后台代理提醒功能。
reminderAgentManager.publishReminder(targetReminderAgent).then((res: number) => {
  console.info('Succeeded in publishing reminder. ');
  let reminderId: number = res; // 发布的提醒ID
}).catch((err: BusinessError) => {
  console.error(`Failed to publish reminder. Code: ${err.code}, message: ${err.message}`);
})
  1. 根据需要删除提醒任务。
let reminderId: number = 1;
// reminderId的值从发布提醒代理成功之后的回调中获得
reminderAgentManager.cancelReminder(reminderId).then(() => {
  console.info('Succeeded in canceling reminder.');
}).catch((err: BusinessError) => {
  console.error(`Failed to cancel reminder. Code: ${err.code}, message: ${err.message}`);
});

【背景知识】

应用退到后台或进程终止后,仍然有一些提醒用户的定时类通知,为满足此类功能场景,系统提供了代理提醒(reminderAgentManager)的能力。当应用退至后台或进程终止后,系统会代理应用做相应的提醒。当前支持的提醒类型包括:倒计时、日历和闹钟。为了防止代理提醒被滥用于广告、营销类提醒,影响用户体验,代理提醒增加了管控机制,应用无法直接使用代理提醒,管控后的使用方法请参考管控限制

更多关于HarmonyOS 鸿蒙Next中Lite Wearable应用如何在后台运行的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


HarmonyOS Next中Lite Wearable应用后台运行需使用后台任务管理机制。通过BackgroundTaskManager申请后台持续运行权限,在config.json中声明后台服务类型为"continuousTask"。应用需实现ServiceAbility生命周期回调,使用keepBackgroundRunning()方法保持活跃状态。系统会根据设备资源动态管理后台任务,应用需处理后台状态切换。注意功耗控制,避免长时间高耗电操作。

在HarmonyOS Next的Lite Wearable应用开发中,要实现后台运行,建议使用Service Ability机制。系统自带的倒计时工具正是通过Service在后台持续运行计时逻辑。

关键步骤:

  1. 在config.json中声明Service Ability,并申请"keep-alive"权限。
  2. 在Service中实现倒计时逻辑,使用定时器定期更新数据。
  3. 主页面通过Feature Ability与Service交互,获取最新倒计时状态。
  4. 合理管理生命周期:页面隐藏时释放资源,但保持Service运行。

需要注意:

  • 手表资源有限,后台Service应优化功耗
  • 使用分布式数据服务或轻量存储保存倒计时状态
  • 避免在Service中执行复杂UI操作

这样即可实现类似系统倒计时应用的后台持续运行能力。

回到顶部