解决主界面组件析构问题
authorCaisking <3449750381@qq.com>
Thu, 11 Apr 2024 08:35:43 +0000 (16:35 +0800)
committerCaisking <3449750381@qq.com>
Thu, 11 Apr 2024 08:35:43 +0000 (16:35 +0800)
code/sdk/application/wearable/fd230app/nativeui/main/src/MainViewSample.cpp
code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingModel.cpp
code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TraingCardPresenter.cpp
code/sdk/drivers/peripheral/cywee/service/cywee_service.c
code/sdk/drivers/peripheral/cywee/src/main_dml.c

index 427cf9f..d0ff34a 100644 (file)
@@ -45,6 +45,8 @@ namespace OHOS
 
     MainViewSample::~MainViewSample()
     {
+        mainSwipeGroup->RemoveAll();
+
         dropDownView->ClearBackgroundBlur();
         messageView->ClearBackgroundBlur();
 
@@ -68,12 +70,14 @@ namespace OHOS
 
         if (activityWeekView != nullptr)
         {
+            activityWeekView->RemoveAll();
             delete activityWeekView;
             activityWeekView = nullptr;
         }
 
         if (playersView != nullptr)
         {
+            playersView->RemoveAll();
             delete playersView;
             playersView = nullptr;
         }
@@ -109,6 +113,7 @@ namespace OHOS
         /* -------------------------------------------------------------------------- */
         if (compassControlView != nullptr)
         {
+            compassControlView->RemoveAll();
             delete compassControlView;
             compassControlView = nullptr;
         }
@@ -121,13 +126,13 @@ namespace OHOS
         }
         if (bloodView != nullptr)
         {
-            // bloodView->RemoveAll();
+            bloodView->RemoveAll();
             delete bloodView;
             bloodView = nullptr;
         }
         if (traingView != nullptr)
         {
-            // traingView->RemoveAll();
+            traingView->RemoveAll();
             delete traingView;
             traingView = nullptr;
         }
index 94d7d05..1d267d0 100644 (file)
@@ -397,8 +397,8 @@ namespace OHOS
             TraingModel::GetInstance()->AnalysisData(cyweeInfo);
             break;
         case TOPIC_EVENT_FREE_TRAINING_UPDATE:
-            cyweeInfo = new cywee_result_t(); // 在case块内分配内存
-            rets = memcpy_s(cyweeInfo, sizeof(cywee_result_t), (cywee_result_t *)request->data, request->len);
+            cyweeInfo = new cywee_activity_result_t(); // 在case块内分配内存
+            rets = memcpy_s(cyweeInfo, sizeof(cywee_activity_result_t), (cywee_activity_result_t *)request->data, request->len);
             if (rets != EOK)
             {
                 delete cyweeInfo; // 处理内存分配失败的情况
index 7d5e57a..194e064 100644 (file)
@@ -117,7 +117,6 @@ namespace OHOS
             do_cywee_service_check_msg(SPORT_ACTIVE_MODE_TREADMILL);\r
             break;\r
         case ExerciseClass::OUTDOOR:\r
-            PRINT("111\r\n");\r
             do_cywee_service_check_msg(SPORT_ACTIVE_MODE_OUTDOOR_RUNNING);\r
             break;\r
         case ExerciseClass::INDOOR:\r
@@ -127,7 +126,6 @@ namespace OHOS
             do_cywee_service_check_msg(SPORT_ACTIVE_MODE_FITNESS_PEDOMETERR);\r
             break;\r
         case ExerciseClass::FREE_TRAINING:\r
-            PRINT("555\r\n");\r
             do_cywee_service_check_msg(SPORT_ACTIVE_MODE_FREE_TRAINING);\r
             break;\r
         default:\r
@@ -223,7 +221,6 @@ namespace OHOS
         if (strcmp(view.GetViewId(), BUTTONEND) == 0)\r
         {\r
             ControlSensor(ExerciseState::End);\r
-\r
             // 弹窗显示是否结束\r
         }\r
         return true;\r
index 8e30013..aedb0d2 100644 (file)
@@ -289,6 +289,7 @@ static void cywee_service_check_task(void const *arg)
         }else if(mail.cmd == SPORT_ACTIVE_MODE_FITNESS_PEDOMETERR){
             cyw_activity_mode_change(SPORT_ACTIVE_MODE_FITNESS_PEDOMETERR);
         }else if(mail.cmd == SPORT_ACTIVE_MODE_FREE_TRAINING){
+            PRINT("111\r\n");
             cyw_activity_mode_change(SPORT_ACTIVE_MODE_FREE_TRAINING);
         }else if(mail.cmd == SPORT_ACTIVE_MODE_AR_ALERT){
             cyw_activity_mode_change(SPORT_ACTIVE_MODE_AR_ALERT);
index 57723e5..84e110b 100644 (file)
@@ -225,7 +225,7 @@ void cyw_activity_mode_change(int mode)
     memset(&scl, 0, sizeof(scl));
     scl.iData[0] = 1;
     CWM_SettingControl(SCL_REQ_ACTIVITY_EXIT, &scl);
-
+    free_training_deinit();
     switch (mode)
     {
         //一般模式(生活模式)
@@ -274,8 +274,8 @@ void cyw_activity_mode_change(int mode)
 
         //自由运动
         case SPORT_ACTIVE_MODE_FREE_TRAINING:
+            PRINT("FREE 111 \r\n");
             free_training_init();
-            free_training_deinit();
             memset(&scl, 0, sizeof(scl));
             scl.iData[0] = 1;
             scl.iData[1] = SPORT_ACTIVE_MODE_FREE_TRAINING;