以下是一个简单的例子,演示如何在鸿蒙OS中使用 TickTimer:
import ohos.aafwk.ability.AbilitySlice;
import ohos.agp.utils.SystemColors;
import ohos.agp.window.dialog.ToastDialog;
import ohos.eventhandler.EventHandler;
import ohos.eventhandler.EventRunner;
import ohos.eventhandler.InnerEvent;
public class MyAbilitySlice extends AbilitySlice {
private static final int TIMER_EVENT = 1;
private TickTimer tickTimer;
@Override
protected void onStart(Intent intent) {
super.onStart(intent);
super.setUIContent(ResourceTable.Layout_ability_main);
// 创建TickTimer
createTickTimer();
// 启动TickTimer
startTickTimer();
}
private void createTickTimer() {
// 创建EventRunner和EventHandler
EventRunner runner = EventRunner.create(true);
EventHandler handler = new EventHandler(runner);
// 创建TickTimer,并设置触发间隔为1000毫秒
tickTimer = new TickTimer(handler, TIMER_EVENT);
tickTimer.setInterval(1000);
// 设置定时任务的回调函数
tickTimer.setTimerCallback((timerId, message) -> {
// 在定时任务中执行的操作
showToast("TickTimer triggered!");
});
}
private void startTickTimer() {
// 启动TickTimer
if (tickTimer != null) {
tickTimer.start();
}
}
private void showToast(String text) {
new ToastDialog(this)
.setText(text)
.setAlignment(LayoutAlignment.CENTER)
.setTextColor(SystemColors.WHITE)
.setDuration(ToastDialog.Duration.LONG)
.show();
}
@Override
protected void onStop() {
// 在Ability停止时停止TickTimer
stopTickTimer();
super.onStop();
}
private void stopTickTimer() {
// 停止TickTimer
if (tickTimer != null) {
tickTimer.stop();
}
}
}
在上述例子中,我们创建了一个 TickTimer 对象,并设置了触发的时间间隔为1000毫秒。然后,我们在 setTimerCallback 方法中设置了定时任务的回调函数,即在每次触发时执行的操作。在示例中,我们简单地弹出一个 Toast 提示。
请注意,在应用的生命周期中,尤其是在 onStop 方法中,我们应该停止 TickTimer 以避免不必要的资源消耗。
TickTimer 提供了灵活的定时任务机制,你可以根据需要设置不同的触发间隔和回调函数。查阅[鸿蒙OS官方文档](https://developer.harmonyos.com/cn/docs/documentation/doc-references-timer-0000000000021494)以获取更多关于 TickTimer 的详细信息。
转载请注明出处:http://www.zyzy.cn/article/detail/2995/鸿蒙OS