diff --git a/frameworks/js/napi/app/js_app_manager/js_app_state_observer.cpp b/frameworks/js/napi/app/js_app_manager/js_app_state_observer.cpp index 0c18d5faf41d2887b86a6815505c3ecbe14335d6..08862519379b8d52b32e085429aa30a3063a3fdb 100644 --- a/frameworks/js/napi/app/js_app_manager/js_app_state_observer.cpp +++ b/frameworks/js/napi/app/js_app_manager/js_app_state_observer.cpp @@ -17,6 +17,9 @@ #include "hilog_tag_wrapper.h" #include "js_runtime_utils.h" #include "js_app_manager_utils.h" +#include "napi/native_api.h" +#include "napi/native_node_api.h" +#include "napi_common_util.h" namespace OHOS { namespace AbilityRuntime { @@ -35,19 +38,19 @@ void JSAppStateObserver::OnForegroundApplicationChanged(const AppStateData &appS return; } wptr jsObserver = this; - std::unique_ptr complete = std::make_unique - ([jsObserver, appStateData](napi_env env, NapiAsyncTask &task, int32_t status) { - sptr jsObserverSptr = jsObserver.promote(); - if (!jsObserverSptr) { - TAG_LOGW(AAFwkTag::APPMGR, "null jsObserver"); - return; - } - jsObserverSptr->HandleOnForegroundApplicationChanged(appStateData); - }); - napi_ref callback = nullptr; - std::unique_ptr execute = nullptr; - NapiAsyncTask::Schedule("JSAppStateObserver::OnForegroundApplicationChanged", - env_, std::make_unique(callback, std::move(execute), std::move(complete))); + auto asyncTask = [jsObserver, appStateData, env = env_]() { + HandleScope handleScope(env); + sptr jsObserverSptr = jsObserver.promote(); + if (!jsObserverSptr) { + TAG_LOGW(AAFwkTag::APPMGR, "jsObserverSptr nullptr"); + return; + } + jsObserverSptr->HandleOnForegroundApplicationChanged(appStateData); + }; + napi_status ret = napi_send_event(env_, asyncTask, napi_eprio_immediate); + if (ret != napi_status::napi_ok) { + TAG_LOGE(AAFwkTag::APPMGR, "failed to send event"); + } } void JSAppStateObserver::HandleOnForegroundApplicationChanged(const AppStateData &appStateData) @@ -70,19 +73,19 @@ void JSAppStateObserver::OnAbilityStateChanged(const AbilityStateData &abilitySt return; } wptr jsObserver = this; - std::unique_ptr complete = std::make_unique - ([jsObserver, abilityStateData](napi_env env, NapiAsyncTask &task, int32_t status) { - sptr jsObserverSptr = jsObserver.promote(); - if (!jsObserverSptr) { - TAG_LOGW(AAFwkTag::APPMGR, "jsObserverSptr null"); - return; - } - jsObserverSptr->HandleOnAbilityStateChanged(abilityStateData); - }); - napi_ref callback = nullptr; - std::unique_ptr execute = nullptr; - NapiAsyncTask::Schedule("JSAppStateObserver::OnAbilityStateChanged", - env_, std::make_unique(callback, std::move(execute), std::move(complete))); + auto asyncTask = [jsObserver, abilityStateData, env = env_]() { + HandleScope handleScope(env); + sptr jsObserverSptr = jsObserver.promote(); + if (!jsObserverSptr) { + TAG_LOGW(AAFwkTag::APPMGR, "jsObserverSptr null"); + return; + } + jsObserverSptr->HandleOnAbilityStateChanged(abilityStateData); + }; + napi_status ret = napi_send_event(env_, asyncTask, napi_eprio_immediate); + if (ret != napi_status::napi_ok) { + TAG_LOGE(AAFwkTag::APPMGR, "failed to send event"); + } } void JSAppStateObserver::HandleOnAbilityStateChanged(const AbilityStateData &abilityStateData) @@ -104,19 +107,19 @@ void JSAppStateObserver::OnExtensionStateChanged(const AbilityStateData &ability return; } wptr jsObserver = this; - std::unique_ptr complete = std::make_unique - ([jsObserver, abilityStateData](napi_env env, NapiAsyncTask &task, int32_t status) { - sptr jsObserverSptr = jsObserver.promote(); - if (!jsObserverSptr) { - TAG_LOGW(AAFwkTag::APPMGR, "jsObserverSptr nullptr"); - return; - } - jsObserverSptr->HandleOnExtensionStateChanged(abilityStateData); - }); - napi_ref callback = nullptr; - std::unique_ptr execute = nullptr; - NapiAsyncTask::Schedule("JSAppStateObserver::OnExtensionStateChanged", - env_, std::make_unique(callback, std::move(execute), std::move(complete))); + auto asyncTask = [jsObserver, abilityStateData, env = env_]() { + HandleScope handleScope(env); + sptr jsObserverSptr = jsObserver.promote(); + if (!jsObserverSptr) { + TAG_LOGW(AAFwkTag::APPMGR, "jsObserverSptr nullptr"); + return; + } + jsObserverSptr->HandleOnExtensionStateChanged(abilityStateData); + }; + napi_status ret = napi_send_event(env_, asyncTask, napi_eprio_immediate); + if (ret != napi_status::napi_ok) { + TAG_LOGE(AAFwkTag::APPMGR, "failed to send event"); + } } void JSAppStateObserver::HandleOnExtensionStateChanged(const AbilityStateData &abilityStateData) @@ -138,19 +141,19 @@ void JSAppStateObserver::OnProcessCreated(const ProcessData &processData) return; } wptr jsObserver = this; - std::unique_ptr complete = std::make_unique - ([jsObserver, processData](napi_env env, NapiAsyncTask &task, int32_t status) { - sptr jsObserverSptr = jsObserver.promote(); - if (!jsObserverSptr) { - TAG_LOGW(AAFwkTag::APPMGR, "jsObserverSptr null"); - return; - } - jsObserverSptr->HandleOnProcessCreated(processData); - }); - napi_ref callback = nullptr; - std::unique_ptr execute = nullptr; - NapiAsyncTask::Schedule("JSAppStateObserver::OnProcessCreated", - env_, std::make_unique(callback, std::move(execute), std::move(complete))); + auto asyncTask = [jsObserver, processData, env = env_]() { + HandleScope handleScope(env); + sptr jsObserverSptr = jsObserver.promote(); + if (!jsObserverSptr) { + TAG_LOGW(AAFwkTag::APPMGR, "jsObserverSptr null"); + return; + } + jsObserverSptr->HandleOnProcessCreated(processData); + }; + napi_status ret = napi_send_event(env_, asyncTask, napi_eprio_immediate); + if (ret != napi_status::napi_ok) { + TAG_LOGE(AAFwkTag::APPMGR, "failed to send event"); + } } void JSAppStateObserver::HandleOnProcessCreated(const ProcessData &processData) @@ -172,19 +175,19 @@ void JSAppStateObserver::OnProcessStateChanged(const ProcessData &processData) return; } wptr jsObserver = this; - std::unique_ptr complete = std::make_unique - ([jsObserver, processData](napi_env env, NapiAsyncTask &task, int32_t status) { - sptr jsObserverSptr = jsObserver.promote(); - if (!jsObserverSptr) { - TAG_LOGW(AAFwkTag::APPMGR, "jsObserverSptr nullptr"); - return; - } - jsObserverSptr->HandleOnProcessStateChanged(processData); - }); - napi_ref callback = nullptr; - std::unique_ptr execute = nullptr; - NapiAsyncTask::Schedule("JSAppStateObserver::OnProcessStateChanged", - env_, std::make_unique(callback, std::move(execute), std::move(complete))); + auto asyncTask = [jsObserver, processData, env = env_]() { + HandleScope handleScope(env); + sptr jsObserverSptr = jsObserver.promote(); + if (!jsObserverSptr) { + TAG_LOGW(AAFwkTag::APPMGR, "jsObserverSptr nullptr"); + return; + } + jsObserverSptr->HandleOnProcessStateChanged(processData); + }; + napi_status ret = napi_send_event(env_, asyncTask, napi_eprio_immediate); + if (ret != napi_status::napi_ok) { + TAG_LOGE(AAFwkTag::APPMGR, "failed to send event"); + } } void JSAppStateObserver::HandleOnProcessStateChanged(const ProcessData &processData) @@ -206,19 +209,19 @@ void JSAppStateObserver::OnProcessDied(const ProcessData &processData) return; } wptr jsObserver = this; - std::unique_ptr complete = std::make_unique - ([jsObserver, processData](napi_env env, NapiAsyncTask &task, int32_t status) { - sptr jsObserverSptr = jsObserver.promote(); - if (!jsObserverSptr) { - TAG_LOGW(AAFwkTag::APPMGR, "jsObserverSptr nullptr."); - return; - } - jsObserverSptr->HandleOnProcessDied(processData); - }); - napi_ref callback = nullptr; - std::unique_ptr execute = nullptr; - NapiAsyncTask::Schedule("JSAppStateObserver::OnProcessCreated", - env_, std::make_unique(callback, std::move(execute), std::move(complete))); + auto asyncTask = [jsObserver, processData, env = env_]() { + HandleScope handleScope(env); + sptr jsObserverSptr = jsObserver.promote(); + if (!jsObserverSptr) { + TAG_LOGW(AAFwkTag::APPMGR, "jsObserverSptr nullptr."); + return; + } + jsObserverSptr->HandleOnProcessDied(processData); + }; + napi_status ret = napi_send_event(env_, asyncTask, napi_eprio_immediate); + if (ret != napi_status::napi_ok) { + TAG_LOGE(AAFwkTag::APPMGR, "failed to send event"); + } } void JSAppStateObserver::HandleOnProcessDied(const ProcessData &processData) @@ -241,19 +244,19 @@ void JSAppStateObserver::OnAppStarted(const AppStateData &appStateData) return; } wptr jsObserver = this; - std::unique_ptr complete = std::make_unique - ([jsObserver, appStateData](napi_env env, NapiAsyncTask &task, int32_t status) { - sptr jsObserverSptr = jsObserver.promote(); - if (!jsObserverSptr) { - TAG_LOGW(AAFwkTag::APPMGR, "jsObserverSptr nullptr."); - return; - } - jsObserverSptr->HandleOnAppStarted(appStateData); - }); - napi_ref callback = nullptr; - std::unique_ptr execute = nullptr; - NapiAsyncTask::Schedule("JSAppStateObserver::OnAppStarted", - env_, std::make_unique(callback, std::move(execute), std::move(complete))); + auto asyncTask = [jsObserver, appStateData, env = env_]() { + HandleScope handleScope(env); + sptr jsObserverSptr = jsObserver.promote(); + if (!jsObserverSptr) { + TAG_LOGW(AAFwkTag::APPMGR, "jsObserverSptr nullptr."); + return; + } + jsObserverSptr->HandleOnAppStarted(appStateData); + }; + napi_status ret = napi_send_event(env_, asyncTask, napi_eprio_immediate); + if (ret != napi_status::napi_ok) { + TAG_LOGE(AAFwkTag::APPMGR, "failed to send event"); + } } void JSAppStateObserver::HandleOnAppStarted(const AppStateData &appStateData) @@ -281,19 +284,19 @@ void JSAppStateObserver::OnAppStopped(const AppStateData &appStateData) return; } wptr jsObserver = this; - std::unique_ptr complete = std::make_unique - ([jsObserver, appStateData](napi_env env, NapiAsyncTask &task, int32_t status) { - sptr jsObserverSptr = jsObserver.promote(); - if (!jsObserverSptr) { - TAG_LOGW(AAFwkTag::APPMGR, "jsObserverSptr nullptr."); - return; - } - jsObserverSptr->HandleOnAppStopped(appStateData); - }); - napi_ref callback = nullptr; - std::unique_ptr execute = nullptr; - NapiAsyncTask::Schedule("JSAppStateObserver::OnAppStopped", - env_, std::make_unique(callback, std::move(execute), std::move(complete))); + auto asyncTask = [jsObserver, appStateData, env = env_]() { + HandleScope handleScope(env); + sptr jsObserverSptr = jsObserver.promote(); + if (!jsObserverSptr) { + TAG_LOGW(AAFwkTag::APPMGR, "jsObserverSptr nullptr."); + return; + } + jsObserverSptr->HandleOnAppStopped(appStateData); + }; + napi_status ret = napi_send_event(env_, asyncTask, napi_eprio_immediate); + if (ret != napi_status::napi_ok) { + TAG_LOGE(AAFwkTag::APPMGR, "failed to send event"); + } } void JSAppStateObserver::HandleOnAppStopped(const AppStateData &appStateData)