ScreenAlwaysOnCtr(OPEN_SCREEN_ALWAYS_ON);
}
- // 处理常亮屏刷新定时器(每5分钟刷新一次,避免1小时超时)
+ // 处理常亮屏刷新(每 5 分钟 cancel/reopen keepon,避免 1 小时超时;不设 LOS_Msleep,避免阻塞图形线程)
if (m_alwaysOnRefreshActive) {
m_alwaysOnRefreshTime++;
- // TimeDisplayCallback每秒调用一次,300次=300秒=5分钟
if (m_alwaysOnRefreshTime >= 300) {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TimeDisplayCallback: Refreshing screen always-on (45 minutes elapsed)");
- //如果息屏则先亮屏
- if (uapi_get_screen_state() == 0) {
- uapi_set_screen_on_api();
- }
- // 先取消常亮屏(设置为0)
- ScreenAlwaysOnCtr(CANCEL_SCREEN_ALWAYS_ON);
-
- // 等待足够的时间,确保取消操作完成(异步操作需要时间)
- // 由于 set_screen_set_keepon_timeout 是异步的,需要等待更长时间
- LOS_Msleep(2000);
-
- // 重新设置常亮屏
- ScreenAlwaysOnCtr(OPEN_SCREEN_ALWAYS_ON);
-
- m_alwaysOnRefreshTime = 0; // 重置计数器
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TimeDisplayCallback: always-on keepon refresh (300s)");
+ if (m_stressTestDialogueActive) {
+ if (uapi_get_screen_state() == 1) {
+ uapi_set_screen_on_api();
+ }
+ ScreenAlwaysOnCtr(CANCEL_SCREEN_ALWAYS_ON);
+ ScreenAlwaysOnCtr(OPEN_SCREEN_ALWAYS_ON);
+ } else if (uapi_get_screen_state() == 0) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TimeDisplayCallback: always-on keepon refresh (never sleep mode)");
+ ScreenAlwaysOnCtr(CANCEL_SCREEN_ALWAYS_ON);
+ ScreenAlwaysOnCtr(OPEN_SCREEN_ALWAYS_ON);
+ }
+ m_alwaysOnRefreshTime = 0;
}
}
void ThunderBirdModel::StartAlwaysOnRefreshTimer()
{
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "StartAlwaysOnRefreshTimer: Starting periodic refresh (every 50 minutes)");
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "StartAlwaysOnRefreshTimer: keepon refresh every 300s (TimeDisplay tick)");
m_alwaysOnRefreshActive = true;
- m_alwaysOnRefreshTime = 0; // 从0开始计数,每50分钟(3000秒)刷新一次
+ m_alwaysOnRefreshTime = 0;
// 确保时间显示定时器正在运行(用于定期检查)
if (m_timeDisplayTimer == nullptr) {