HarmonyOS鸿蒙Next中如何监听时间变化?类似于Android端的Intent.ACTION_TIME_TICK和Intent.ACTION_DATE_CHANGED广播,可以每分钟变化和日期的变化

HarmonyOS鸿蒙Next中如何监听时间变化?类似于Android端的Intent.ACTION_TIME_TICK和Intent.ACTION_DATE_CHANGED广播,可以每分钟变化和日期的变化 如何监听时间变化?类似于Android 端的Intent.ACTION_TIME_TICK和Intent.ACTION_DATE_CHANGED广播,可以每分钟变化和日期的变化

3 回复

参考demo:

let subscriber:CommonEventManager.CommonEventSubscriber; //用于保存创建成功的订阅者对象,后续使用其完成订阅及退订的动作

//订阅者信息
let subscribeInfo:CommonEventManager.CommonEventSubscribeInfo = {
events: ['usual.event.TIME_TICK', 'usual.event.TIME_CHANGED']
};

//订阅公共事件回调
function SubscribeCB(err:Base.BusinessError, data:CommonEventManager.CommonEventData) {
if (err) {
console.error(`subscribe failed, code is ${err.code}, message is ${err.message}`);
} else {
console.info("subscribe XXXXXXXXXXXXXXXXXXXXXXXXX");
}
}

//创建订阅者回调
function createCB(err:Base.BusinessError, commonEventSubscriber:CommonEventManager.CommonEventSubscriber) {
if(!err) {
console.info("createSubscriber");
subscriber = commonEventSubscriber;
//订阅公共事件
try {
CommonEventManager.subscribe(subscriber, SubscribeCB);
} catch (error) {
let err:Base.BusinessError = error as Base.BusinessError;
console.error(`subscribe failed, code is ${err.code}, message is ${err.message}`);
}
} else {
console.error(`createSubscriber failed, code is ${err.code}, message is ${err.message}`);
}
}

//创建订阅者
try {
CommonEventManager.createSubscriber(subscribeInfo, createCB);
} catch (error) {
let err:Base.BusinessError = error as Base.BusinessError;
console.error(`createSubscriber failed, code is ${err.code}, message is ${err.message}`);
}

更多关于HarmonyOS鸿蒙Next中如何监听时间变化?类似于Android端的Intent.ACTION_TIME_TICK和Intent.ACTION_DATE_CHANGED广播,可以每分钟变化和日期的变化的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS (鸿蒙Next) 中,监听时间变化可以通过TimeManagerSystemEventManager来实现。TimeManager用于获取系统时间,而SystemEventManager用于监听系统事件。

  1. 每分钟时间变化监听

    • 使用SystemEventManageron方法监听timeTick事件,该事件每分钟触发一次。
    • 示例代码:
      import systemEvent from '@ohos.systemEvent';
      
      systemEvent.on('timeTick', () => {
          console.log('每分钟时间变化');
      });
      
  2. 日期变化监听

    • 使用SystemEventManageron方法监听dateChanged事件,该事件在日期变化时触发。
    • 示例代码:
      import systemEvent from '@ohos.systemEvent';
      
      systemEvent.on('dateChanged', () => {
          console.log('日期变化');
      });
      

这些方法类似于Android中的Intent.ACTION_TIME_TICKIntent.ACTION_DATE_CHANGED广播,用于在鸿蒙系统中监听时间变化。

在HarmonyOS鸿蒙Next中,你可以通过@ohos.systemDateTime模块来监听时间变化。使用systemDateTime.on('timeChange', callback)方法来注册时间变化的监听器,callback会在每分钟变化时触发。对于日期变化,可以使用systemDateTime.on('dateChange', callback)方法。这些方法类似于Android中的Intent.ACTION_TIME_TICKIntent.ACTION_DATE_CHANGED广播。

回到顶部