解决倒计时界面内存泄漏问题
authorluozheng <1732036298@qq.com>
Sat, 16 Nov 2024 08:21:36 +0000 (16:21 +0800)
committerluozheng <1732036298@qq.com>
Sat, 16 Nov 2024 08:21:36 +0000 (16:21 +0800)
code/sdk/application/wearable/fd230app/nativeui/countdown/src/MainCountDownPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/countdown/src/MainCountDownView.cpp

index 26c6c05..ddf2320 100644 (file)
@@ -158,7 +158,8 @@ namespace OHOS
         {\r
             UITimePicker *timePicker = CountDownTimeConfigView::GetInstance()->GetTimePicker();\r
 \r
-            if (nullptr != timePicker && ("00:00:00" != timePicker->GetSelectValue()))\r
+            std::string timeValue = timePicker->GetSelectValue();\r
+            if (nullptr != timePicker && ("00:00:00" != timeValue))\r
             {\r
                 CountDownModel::GetInstance()->SetCountDownTime(timePicker->GetSelectValue()); // 设置倒计时时间\r
                 CountDownModel::GetInstance()->SetRingTime(timePicker->GetSelectValue());      // 设置响铃时间\r
@@ -201,6 +202,7 @@ namespace OHOS
         {\r
             CountDownModel::GetInstance()->SetCountDownTime("00:00:00");\r
             CountDownModel::GetInstance()->SetRingTime("00:00:00");\r
+            CountDownModel::GetInstance()->CountDown_StopTimer();\r
             CountDownModel::GetInstance()->StopRingtonePlaybackAndReleaseResources();\r
             p_StartCountDownView->GetPlayOrPauseToggleButton()->SetTouchable(true);\r
             p_StartCountDownView->GetPlayOrPauseToggleButton()->SetState(false);\r
index 150f0ff..fcfecb7 100644 (file)
@@ -245,14 +245,17 @@ namespace OHOS
     bool MainCountDownView::ChangeMainCountDown(int16_t thisView)\r
     {\r
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainCountDownView::ChangeMainCountDown");\r
-        UIScrollView *view = MainCountDownViewInit();\r
-        if (view == nullptr)\r
+        if (scrollView[thisView] == nullptr)\r
         {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "view nullptr fail");\r
-            return false;\r
+            UIScrollView *view = MainCountDownViewInit();\r
+            if (view == nullptr)\r
+            {\r
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "view nullptr fail");\r
+                return false;\r
+            }\r
+            scrollView[thisView] = view;\r
+            container_->Add(scrollView[thisView]);\r
         }\r
-        scrollView[thisView] = view;\r
-        container_->Add(scrollView[thisView]);\r
         return true;\r
     }\r
 \r
@@ -426,6 +429,7 @@ namespace OHOS
         container_->SetTouchable(true);\r
         container_->SetDraggable(true);\r
         /* -------------------------------------------------------------------------- */\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "%d,%d",CountDownModel::GetInstance()->CountDownTimerIsEnd(),CountDownModel::GetInstance()->GetChanageToStartCountDownView());\r
         if (CountDownModel::GetInstance()->CountDownTimerIsEnd() == false ||\r
             CountDownModel::GetInstance()->GetChanageToStartCountDownView() == true)\r
         {\r