diff --git a/services/memmgrservice/src/event/mem_mgr_event_center.cpp b/services/memmgrservice/src/event/mem_mgr_event_center.cpp index 7436fcff942252ebaeb8e96616d640ddc6f4253d..18d56bd3a512032df646c576cede60a2ba5150c3 100644 --- a/services/memmgrservice/src/event/mem_mgr_event_center.cpp +++ b/services/memmgrservice/src/event/mem_mgr_event_center.cpp @@ -217,11 +217,10 @@ void MemMgrEventCenter::RegisterBgTaskObserver() { HILOGI("called"); #ifdef CONFIG_BGTASK_MGR - if (bgTaskObserver_) { - return; - } - MAKE_POINTER(bgTaskObserver_, shared, BgTaskObserver, "make BgTaskObserver failed", + if (!bgTaskObserver_) { + MAKE_POINTER(bgTaskObserver_, shared, BgTaskObserver, "make BgTaskObserver failed", return, /* no param */); + } ErrCode ret = BackgroundTaskMgr::BackgroundTaskMgrHelper::SubscribeBackgroundTask(*bgTaskObserver_); if (ret == ERR_OK) { HILOGI("register success"); @@ -305,7 +304,6 @@ void MemMgrEventCenter::UnregisterEventObserver() if (bgTaskObserver_) { BackgroundTaskMgr::BackgroundTaskMgrHelper::UnsubscribeBackgroundTask(*bgTaskObserver_); } - bgTaskObserver_ = nullptr; #endif if (accountObserver_) { AccountSA::OsAccountManager::UnsubscribeOsAccount(accountObserver_);