修复运动卡片内存泄漏 1636/1
authorCaisking <3449750381@qq.com>
Fri, 17 Jan 2025 09:50:32 +0000 (17:50 +0800)
committerCaisking <3449750381@qq.com>
Fri, 17 Jan 2025 09:50:32 +0000 (17:50 +0800)
code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TraingCardPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TraingCardView.cpp
code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TraingDataAllView.cpp
code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TrainingControlView.cpp
code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TrainingDataView.cpp
code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TrainingDetailView.cpp

index 51c7982..f7ac60c 100644 (file)
@@ -495,7 +495,9 @@ void TraingCardPresenter::handleEndState() {
   ControlSensor(ExerciseState::End);\r
   uapi_set_screen_on_api(); // 亮屏\r
 #if DATATEST\r
-  NativeAbility::GetInstance().ChangeSlice(VIEW_TRAININGENDDATA);\r
+  // NativeAbility::GetInstance().ChangeSlice(VIEW_TRAININGENDDATA);\r
+  // 回退\r
+  NativeAbility::GetInstance().ChangeSlice(VIEW_TRAININGNOMAL);\r
   return;\r
 #endif\r
   // 是否达到训练目标\r
index d61e7ca..ca2ebc0 100644 (file)
@@ -20,7 +20,6 @@
 #include "traing/include/TraingModel.h"\r
 #include "uicomponents/UIComponents.h"\r
 \r
-\r
 extern "C" {\r
 void StartTimer();\r
 void StopAndResetTimer();\r
@@ -634,6 +633,7 @@ void TraingCardView::DeInit() {
   endView->RemoveAll();\r
   getView->RemoveAll();\r
   heartView->RemoveAll();\r
+  DetailView->RemoveAll();\r
 \r
   /*标签*/\r
   delete endtitle;\r
@@ -644,6 +644,7 @@ void TraingCardView::DeInit() {
   endnotelabel = nullptr;\r
   delete endnote;\r
   endnote = nullptr;\r
+\r
   delete labeltitle;\r
   labeltitle = nullptr;\r
   delete labeltag;\r
@@ -652,6 +653,7 @@ void TraingCardView::DeInit() {
   labelgettag = nullptr;\r
   delete labelpre;\r
   labelpre = nullptr;\r
+\r
   delete hearttitle;\r
   hearttitle = nullptr;\r
   delete labelnote;\r
@@ -684,6 +686,8 @@ void TraingCardView::DeInit() {
   dataallview_ = nullptr;\r
   delete musicview_;\r
   musicview_ = nullptr;\r
+  delete DetailView; //删除屏蔽卡片\r
+  DetailView = nullptr;\r
 \r
   /*弹窗*/\r
   delete endView;\r
@@ -1031,7 +1035,11 @@ void TraingCardView::OnTearDownView() {
 \r
 void TraingCardView::OnStop() {\r
   View<TraingCardPresenter>::OnStop();\r
-  container_ = nullptr;\r
+  // if (container_ != nullptr) {\r
+  //   container_->RemoveAll();\r
+  //   delete container_;\r
+  //   container_ = nullptr;\r
+  // }\r
   RootView::GetInstance()->RemoveAll();\r
   return;\r
 }\r
index 1579cf2..1c92c91 100644 (file)
@@ -42,6 +42,12 @@ void TraingDataAllView::ClearAll(void) {
 
   delete trainingDetailView;
   trainingDetailView = nullptr;
+
+  delete trainingDataAllView;
+  trainingDataAllView = nullptr;
+
+  delete traingDataAllPageView;
+  traingDataAllPageView = nullptr;
 }
 
 UISwipeView *TraingDataAllView::TraingDataAllViewInit(void) {
index 1ddd7d6..1ca79f2 100644 (file)
@@ -93,6 +93,7 @@ UIButton *TrainingControlView::GetButton() { return buttonStop; }
 void TrainingControlView::DeInit() {
   RemoveAll();
   if (labeltitle != nullptr) {
+    delete labeltitle;
     labeltitle = nullptr;
   }
   if (labeltimer != nullptr) {
index 416024c..be8bfee 100644 (file)
 #include "common/image_cache_manager.h"
 #include "components/ui_button.h"
 #include "components/ui_label_ext.h"
+#include "custom_runtime.h"
 #include "traing/Training_UiConfig.h"
 #include "traing/include/TraingModel.h"
 #include "ui_resource_image.h"
 #include "ui_resource_string.h"
 #include "uicomponents/UIComponents.h"
 #include <ui_scroll_view.h>
-#include "custom_runtime.h"
 
 namespace OHOS {
 
@@ -31,7 +31,6 @@ TrainingDataView::TrainingDataView() {
 }
 
 TrainingDataView::~TrainingDataView() {
-  RemoveAll();
   DeInit();
   g_pTrainingDataView = nullptr;
 }
@@ -77,7 +76,6 @@ bool TrainingDataView ::InitPage() {
   InitLabelExt(sportlabel, 83, 120, 300, 35, "label2", sport_id,
                DEFAULT_VECTOR_FONT_FILENAME, 30);
   sportlabel->SetTextColor(Color::Gray());
-
   //数字统一使用DEFAULT_VECTOR_FONT_FILENAME_EN
   InitLabel(curtimelabel, 155, 60, 150, 50, "label1", "23:54",
             DEFAULT_VECTOR_FONT_FILENAME_EN, 40);
@@ -85,7 +83,6 @@ bool TrainingDataView ::InitPage() {
             DEFAULT_VECTOR_FONT_FILENAME_EN, 80);
   InitLabel(heartlabel, 85, 284, 230, 80, "label4", "--",
             DEFAULT_VECTOR_FONT_FILENAME_EN, 60);
-  
   InitLabel(ubpmlabel, 218, 284, 230, 80, "label5", "bpm",
             DEFAULT_VECTOR_FONT_FILENAME, 60);
   ubpmlabel->SetTextColor(Color::Gray());
@@ -98,12 +95,12 @@ bool TrainingDataView ::InitPage() {
   return true;
 
 #if 0
-        //  初始化Button
-        InitButton(buttonNote, 275, 350, 26, 26, BUTTONNOTE);
-        // Set additional property
-        buttonNote->SetImageSrc(NOTE_IMAGE, NOTE_IMAGE);
-        buttonNote->SetOnClickListener(static_cast<UIView::OnClickListener *>(TraingCardPresenter::GetInstance()));
-        Add(buttonNote);
+  //  初始化Button
+  InitButton(buttonNote, 275, 350, 26, 26, BUTTONNOTE);
+  // Set additional property
+  buttonNote->SetImageSrc(NOTE_IMAGE, NOTE_IMAGE);
+  buttonNote->SetOnClickListener(static_cast<UIView::OnClickListener *>(TraingCardPresenter::GetInstance()));
+  Add(buttonNote);
 #endif
   // 增加上拉卡片
   // SetCoverable(true);
@@ -113,6 +110,7 @@ bool TrainingDataView ::InitPage() {
 void TrainingDataView::DeInit() {
   RemoveAll();
   if (curtimelabel != nullptr) {
+    delete curtimelabel;
     curtimelabel = nullptr;
   }
   if (sportlabel != nullptr) {
@@ -131,6 +129,7 @@ void TrainingDataView::DeInit() {
     delete ubpmlabel;
     ubpmlabel = nullptr;
   }
+
   // 删除button
   if (buttonNote != nullptr) {
     delete buttonNote;
@@ -138,10 +137,6 @@ void TrainingDataView::DeInit() {
   }
 
   // 删除Image
-  if (image_lowIntensity != nullptr) {
-    delete image_lowIntensity;
-    image_lowIntensity = nullptr;
-  }
   if (image_iconup != nullptr) {
     delete image_iconup;
     image_iconup = nullptr;
@@ -150,6 +145,16 @@ void TrainingDataView::DeInit() {
     delete image_iconpoint;
     image_iconpoint = nullptr;
   }
+  if (image_heart != nullptr) {
+    delete image_heart;
+    image_heart = nullptr;
+  }
+  if (image_progress != nullptr) {
+    delete image_progress;
+    image_progress = nullptr;
+  }
+
+  //删除进度条圆圈
   if (circleProgress != nullptr) {
     delete circleProgress;
     circleProgress = nullptr;
@@ -173,12 +178,11 @@ void TrainingDataView::UpdataTime() {
   // 解析时间
   int hour = pTM.tm_hour;
   //需要判断显示的格式
-  if (uapi_dev_runtime_get_time_hour_show_model() ==  12)
-  {
-      if (pTM.tm_hour > 12)
-          hour = pTM.tm_hour - 12 ;
+  if (uapi_dev_runtime_get_time_hour_show_model() == 12) {
+    if (pTM.tm_hour > 12)
+      hour = pTM.tm_hour - 12;
   }
-  
+
   int minute = pTM.tm_min;
 
   // 将时间和日期转换为字符串
index 50ffe5e..1fce82c 100644 (file)
@@ -25,7 +25,6 @@ TrainingDetailView::TrainingDetailView() {
   g_pTrainingDetailView = this;
 }
 TrainingDetailView::~TrainingDetailView() {
-  RemoveAll();
   DeInit();
   g_pTrainingDetailView = nullptr;
 }