鸿蒙 arkTs 定时器的使用
·
在 onPageshow()方法中调用定时器
startCount() {
let timer = setInterval(function(){
if (this.stop_timer) {
clearInterval(timer)
}
console.log('setTimeout do after 1s delay.');
try {
this.cot = this.cot + 1;
} catch (e) {
console.log('setTimeout do after 1s delay.' + e);
}
}.bind(this), 1500)
}
注意 setInterval 一定要 在后面绑定 当前的页面,否则funtion中访问变量会报undifined
.bind(this) ,不绑定的话,this的指向就是 funtion里面 了
完整代码:
@Entry
@Component
struct TimerPage {
@State message: string = '定时器'
@State cot: number = 0
@State stop_timer:boolean = false;
onPageShow() {
// clearTimeout(timeoutID);
this.startCount()
}
aboutToAppear() {
}
build() {
Column({ space: 20 }) {
Text(this.message + this.cot)
.fontSize(50)
.fontWeight(FontWeight.Bold)
.width('100%')
.textAlign(TextAlign.Center)
.height(150)
.backgroundColor(Color.Red)
Text("dianji ")
.fontSize(50)
.fontWeight(FontWeight.Bold)
.width('100%')
.textAlign(TextAlign.Center)
.onClick(() => {
this.cot++;
})
.height(150)
.backgroundColor(Color.Blue)
Text("清空定时器")
.fontSize(50)
.fontWeight(FontWeight.Bold)
.width('100%')
.textAlign(TextAlign.Center)
.onClick(() => {
this.stop_timer= true;
})
.height(150)
.backgroundColor(Color.Orange)
}.height('100%').justifyContent(FlexAlign.Center)
}
startCount() {
let timer = setInterval(function(){
if (this.stop_timer) {
clearInterval(timer)
}
console.log('setTimeout do after 1s delay.');
try {
this.cot = this.cot + 1;
} catch (e) {
console.log('setTimeout do after 1s delay.' + e);
}
}.bind(this), 1500)
}
}更多推荐


所有评论(0)