From 12a788e90e539919ce91c5b52d31d6d09a55e2cc Mon Sep 17 00:00:00 2001 From: xinking129 Date: Thu, 23 May 2024 14:41:41 +0800 Subject: [PATCH] Query Bug Signed-off-by: xinking129 --- services/ans/include/advanced_datashare_helper.h | 3 ++- services/ans/src/advanced_datashare_helper.cpp | 16 ++++++---------- 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/services/ans/include/advanced_datashare_helper.h b/services/ans/include/advanced_datashare_helper.h index 192eca0e5..f5f0fd8cb 100644 --- a/services/ans/include/advanced_datashare_helper.h +++ b/services/ans/include/advanced_datashare_helper.h @@ -39,7 +39,8 @@ public: std::string GetUnifiedGroupEnableUri() const; private: - std::shared_ptr CreateDataShareHelper(); + void CreateDataShareHelper(); + std::shared_ptr dataShareHelper_ = nullptr; }; } // namespace Notification } // namespace OHOS diff --git a/services/ans/src/advanced_datashare_helper.cpp b/services/ans/src/advanced_datashare_helper.cpp index 67989bcb0..3fd1d5ed0 100644 --- a/services/ans/src/advanced_datashare_helper.cpp +++ b/services/ans/src/advanced_datashare_helper.cpp @@ -42,41 +42,38 @@ AdvancedDatashareHelper::AdvancedDatashareHelper() CreateDataShareHelper(); } -std::shared_ptr AdvancedDatashareHelper::CreateDataShareHelper() +void CreateDataShareHelper() { sptr saManager = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager(); if (saManager == nullptr) { ANS_LOGE("The sa manager is nullptr."); - return nullptr; + return; } sptr remoteObj = saManager->GetSystemAbility(ADVANCED_NOTIFICATION_SERVICE_ABILITY_ID); if (remoteObj == nullptr) { ANS_LOGE("The remoteObj is nullptr."); - return nullptr; + return; } - return DataShare::DataShareHelper::Creator(remoteObj, SETTINGS_DATA_EXT_URI); + dataShareHelper_ = DataShare::DataShareHelper::Creator(remoteObj, SETTINGS_DATA_EXT_URI); } bool AdvancedDatashareHelper::Query(Uri &uri, const std::string &key, std::string &value) { - std::shared_ptr dataShareHelper = CreateDataShareHelper(); - if (dataShareHelper == nullptr) { + if (dataShareHelper_ == nullptr) { ANS_LOGE("The data share helper is nullptr."); return false; } DataShare::DataSharePredicates predicates; std::vector columns; predicates.EqualTo(ADVANCED_DATA_COLUMN_KEYWORD, key); - auto result = dataShareHelper->Query(uri, predicates, columns); + auto result = dataShareHelper_->Query(uri, predicates, columns); if (result == nullptr) { ANS_LOGE("Query error, result is null."); - dataShareHelper->Release(); return false; } if (result->GoToFirstRow() != DataShare::E_OK) { ANS_LOGE("Query failed, go to first row error."); result->Close(); - dataShareHelper->Release(); return false; } int32_t columnIndex; @@ -84,7 +81,6 @@ bool AdvancedDatashareHelper::Query(Uri &uri, const std::string &key, std::strin result->GetString(columnIndex, value); result->Close(); ANS_LOGD("Query success, value[%{public}s]", value.c_str()); - dataShareHelper->Release(); return true; } -- Gitee