鸿蒙短信倒计时
2025-04-16 09:31:40
108次阅读
2个回答
发送短信然后开始倒计时,怎样实现退出页面后倒计时不被重置仍在倒计时
11
- 你确定这样可以吗?
- 我觉得可以
- 你怎么自问自答?【你确定这样可以吗?】【我觉得可以】
2025-06-09 17:46:56
最佳答案
我觉得可以定一个长静态变量,倒计时执行也放在外面,不受页面影响
2025-06-14 23:29:35
最佳答案
你好。
你的问题由两方面组成。
首先你需要将倒计时逻辑,不要放在页面中,而是单例或者vm类中,与界面解耦,通过回调更新给页面。
之后目前鸿蒙的后台机制,类似于IOS的墓碑机制。退到后台后,一定时间后,APP会处于休眠冻结状态,倒计时会被停止。该问题。
使用短时任务可以解决该问题。
let myReason = 'test requestSuspendDelay';
try {
let delayInfo = backgroundTaskManager.requestSuspendDelay(myReason, () => {
console.info("Request suspension delay will time out.");
})
let id = delayInfo.requestId;
let time = delayInfo.actualDelayTime;
console.info("The requestId is: " + id);
console.info("The actualDelayTime is: " + time);
setInterval(()=>{
this.intervalN++;
console.info("The requestId is: " + this.intervalN);
},1000)
} catch (error) {
console.error(`requestSuspendDelay failed. code is ${(error as BusinessError).code} message is ${(error as BusinessError).message}`);
}