LVGL的定时器执行定时回调时,主线程实际是停止的。

同时有多个定时器到期,它们会按照创建顺序或优先级依次执行。

定时器里面操作控件,但是控件已经被删除了。所以要删除定时器。

/*
 * 屏幕销毁时清理定时器
 * 避免 timer 继续更新已删除的 label
 */
static void on_master_del(lv_event_t *e)
{
    if (time_timer) {
        lv_timer_del(time_timer);
        time_timer = NULL;
    }
}
//添加时间回调,当screen发生了LV_EVENT_DELETE删除事件,执行on_master_del回调
lv_obj_add_event_cb(screen, on_master_del, LV_EVENT_DELETE, NULL);