优化获取信号(补) 2849/1 2849/head 2850/target/1
authorxue <2144439972@qq.com>
Wed, 3 Dec 2025 08:35:43 +0000 (16:35 +0800)
committerxue <2144439972@qq.com>
Wed, 3 Dec 2025 08:35:43 +0000 (16:35 +0800)
code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/include/ThunderBirdModel.h
code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdModel.cpp

index 723353f..04df4d8 100644 (file)
@@ -32,7 +32,6 @@ namespace OHOS
         void StartStatusTimer(uint32_t interval = 2 * 1000); // 2秒检查一次状态
         void StopStatusTimer(void);
         void StatusCallback();
-        void StatusCallbackUI();  // StatusCallback的UI线程部分
         
         // 业务定时器控制函数(保持原有接口)
         void StartReminderHideTimer(uint32_t intervalMs = 1000);
index cc751cd..b17b31b 100644 (file)
@@ -1570,43 +1570,11 @@ extern "C" {
             m_statusTimer = nullptr;
         }
     }
-    // 网络状态更新后台任务结构体
-    struct NetworkStatusUpdateTask {
-        ThunderBirdModel* model;
-    };
     
-    // 网络状态更新线程句柄
-    static uint32_t g_net_status_update_thread_handle = 0;
-
-    // 网络状态更新后台线程函数
-    static void NetworkStatusUpdateThreadFunc(void* arg)
-    {
-        NetworkStatusUpdateTask* task = static_cast<NetworkStatusUpdateTask*>(arg);
-        if (task == nullptr || task->model == nullptr) {
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "NetworkStatusUpdateThreadFunc: Invalid task");
-            if (task) delete task;
-            return;
-        }
-
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "NetworkStatusUpdateThreadFunc: Starting background network status update");
-
-        // 在后台线程更新网络状态(耗时操作)
-        task->model->UpdateNetworkStatus();
-
-        // 更新完成后,通过PostGraphicEvent回到UI线程继续处理
-        GraphicService::GetInstance()->PostGraphicEvent([task]() {
-            if (task->model != nullptr) {
-                // 继续执行StatusCallback中需要在UI线程执行的部分
-                task->model->StatusCallbackUI();
-            }
-            delete task;
-        });
-    }
-
     /**
-     * @brief 状态管理回调处理(UI线程部分)
+     * @brief 状态管理回调处理
      */
-    void ThunderBirdModel::StatusCallbackUI()
+    void ThunderBirdModel::StatusCallback()
     {
     //    if( HasCat1Power() == false)
     //    {
@@ -1614,8 +1582,10 @@ extern "C" {
     //         return;
     //    }
     
+        // 更新网络状态
+        UpdateNetworkStatus();
+        
         // 检查网络状态是否有网
-
         if(HasNetwork())
         {
             if(get_is_ln_get_device_network_success())
@@ -1811,49 +1781,7 @@ extern "C" {
             ThunderBirdPresenter::GetInstance()->timer_callback_toui_proc();
         }
         
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "StatusCallbackUI: status=%d", static_cast<int>(m_currentStatus));
-    }
-
-    /**
-     * @brief 状态管理回调处理(启动后台线程更新网络状态)
-     */
-    void ThunderBirdModel::StatusCallback()
-    {
-        // ==================== 网络状态处理 ====================
-        // 将网络状态更新移到后台线程,避免阻塞UI线程
-        NetworkStatusUpdateTask* task = new NetworkStatusUpdateTask();
-        task->model = this;
-
-        // 创建后台线程执行网络状态更新
-        app_task_definition_ext_t task_cfg;
-        memset(&task_cfg, 0, sizeof(task_cfg));
-        
-        task_cfg.attr.name = "NetStatusUpdate";
-        task_cfg.attr.priority = osPriorityNormal;
-        task_cfg.attr.stack_size = 0x1000; // 4KB栈(UpdateNetworkStatus需要调用底层API,需要足够栈空间)
-        task_cfg.func = (osThreadFunc_t)NetworkStatusUpdateThreadFunc;
-        task_cfg.task_handle = &g_net_status_update_thread_handle;
-        task_cfg.create_queue_handle = NULL;
-        task_cfg.use_mem = USE_EXTEND_MEM; /* 将线程栈放到扩展内存,降低TCB/heap压力 */
-        task_cfg.inst_args = task; /* 传递任务参数 */
-        
-        errcode_t tret = uapi_create_osThread_custom_with_args(&task_cfg);
-        // 注意:uapi_create_osThread_custom_with_args 会将 osThreadId_t (void*) 直接赋值给 task_handle 指针
-        // 需要手动转换并设置到我们的句柄变量中
-        if (tret == ERRCODE_SUCC && task_cfg.task_handle != NULL) {
-            // 将线程ID转换为uint32_t并设置到句柄变量
-            // task_handle 字段存储的是 osThreadId_t (void*) 值,需要转换为 uint32_t
-            void* threadId = (void*)task_cfg.task_handle;
-            g_net_status_update_thread_handle = (uint32_t)(unsigned long)threadId;
-            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ThunderBirdModel::StatusCallback: thread created successfully, handle=0x%x", g_net_status_update_thread_handle);
-        } else {
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThunderBirdModel::StatusCallback: thread create failed: 0x%x", tret);
-            // 如果线程创建失败,回退到同步方式(不推荐,但至少能工作)
-            UpdateNetworkStatus();
-            StatusCallbackUI();
-            delete task;
-        }
-        // 如果线程创建成功,StatusCallbackUI会在后台线程完成后通过PostGraphicEvent调用
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "StatusCallback: status=%d", static_cast<int>(m_currentStatus));
     }