void InitImageAnimatorSource(UIImageAnimatorView *&imageAnimator, ImageAnimatorInfo *&imageAnimatorInfo, const char **imagePaths, const ImageAnimatorConfig &imageAnimatorConfig);
void FreeImagePathsArray(const char **imagePaths, const int numImages);
+
+ void DeleteImageAnimatorInfo(ImageAnimatorInfo *&imageAnimatorInfo);
};
}
#endif
\ No newline at end of file
}
}
+ void ImageAnimator::DeleteImageAnimatorInfo(ImageAnimatorInfo *&imageAnimatorInfo)
+ {
+ if (imageAnimatorInfo != nullptr)
+ {
+ // 由于 imageAnimatorInfo 是一个数组,我们需要使用 delete[] 来删除它
+ delete[] imageAnimatorInfo;
+
+ // 重置指针防止悬空指针
+ imageAnimatorInfo = nullptr;
+ }
+ }
+
}
\ No newline at end of file
bool WeatherControlView::InitView(void)
{
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "WeatherControlView::InitView()");
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "WeatherControlView::InitView");
mainWeatherView = new MainWeatherView();
if (mainWeatherView == nullptr)
{
}
weatherSwipView->SetOnSwipeListener(weatherOnSwipeListener);
Add(weatherSwipView);
- viewiInitStatus = true;
return true;
}
void WeatherControlView::PreLoad(void)
{
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "WeatherControlView::PreLoad");
if (!viewiInitStatus)
{
InitView();
if (p_ImageAnimator != nullptr)\r
{\r
p_ImageAnimator->FreeImagePathsArray(UVPathsArray, UV_IMAGE_ANIMATOR_VIEW_NUM_FRAMES);\r
+ p_ImageAnimator->DeleteImageAnimatorInfo(UVimageAnimatorInfo);\r
+\r
p_ImageAnimator->FreeImagePathsArray(WindSpeedPathsArray, WINDSPEED_IMAGE_ANIMATOR_VIEW_NUM_FRAMES);\r
+ p_ImageAnimator->DeleteImageAnimatorInfo(WindSpeedimageAnimatorInfo);\r
+\r
p_ImageAnimator->FreeImagePathsArray(HumidityPathsArray, HUMIDITY_IMAGE_ANIMATOR_VIEW_NUM_FRAMES);\r
+ p_ImageAnimator->DeleteImageAnimatorInfo(HumidityimageAnimatorInfo);\r
\r
delete p_ImageAnimator;\r
p_ImageAnimator = nullptr;\r
}\r
-\r
- delete UVimageAnimatorInfo;\r
- UVimageAnimatorInfo = nullptr;\r
- delete WindSpeedimageAnimatorInfo;\r
- WindSpeedimageAnimatorInfo = nullptr;\r
- delete HumidityimageAnimatorInfo;\r
- HumidityimageAnimatorInfo = nullptr;\r
}\r
}\r
\r
if (viewInitStatus == true)
{
RemoveAll();
+ if (showWeatherImage != nullptr)
+ {
+ delete showWeatherImage;
+ showWeatherImage = nullptr;
+ }
if (showCurrentTimeLabel != nullptr)
{
delete showCurrentTimeLabel;
delete showTemperatureLabel;
showTemperatureLabel = nullptr;
}
- if (showWeatherImage != nullptr)
- {
- delete showWeatherImage;
- showWeatherImage = nullptr;
- }
if (showWeatherDescriptionLabel != nullptr)
{
delete showWeatherDescriptionLabel;
if (p_ImageAnimator != nullptr)
{
p_ImageAnimator->FreeImagePathsArray(PullUpPathsArray, PULLUP_ANIMATOR_VIEW_NUM_FRAMES);
+ p_ImageAnimator->DeleteImageAnimatorInfo(PullUpimageAnimatorInfo);
+
delete p_ImageAnimator;
p_ImageAnimator = nullptr;
}
- delete PullUpimageAnimatorInfo;
}
}