0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

鴻蒙之@ohos.app.ability.appRecovery (appRecovery)

王程 ? 來源:jf_75796907 ? 作者:jf_75796907 ? 2024-02-20 16:28 ? 次閱讀

appRecovery模塊提供了應(yīng)用在故障狀態(tài)下的恢復(fù)能力。

說明
本模塊首批接口從API version 9開始支持。后續(xù)版本的新增接口,采用上角標(biāo)單獨(dú)標(biāo)記接口的起始版本。當(dāng)前版本僅支持單進(jìn)程中單Ability的應(yīng)用恢復(fù)。

導(dǎo)入模塊

import appRecovery from ‘@ohos.app.ability.appRecovery’;

appRecovery.RestartFlag

應(yīng)用重啟標(biāo)志,enableAppRecovery接口重啟選項參數(shù),該類型為枚舉。

系統(tǒng)能力:以下各項對應(yīng)的系統(tǒng)能力均為SystemCapability.Ability.AbilityRuntime.Core

名稱 說明
ALWAYS_RESTART 0 總是重啟應(yīng)用。
RESTART_WHEN_JS_CRASH 0x0001 發(fā)生JS_CRASH時重啟應(yīng)用。
RESTART_WHEN_APP_FREEZE 0x0002 發(fā)生APP_FREEZE時重啟應(yīng)用。
NO_RESTART 0xFFFF 總是不重啟應(yīng)用。

appRecovery.SaveOccasionFlag

保存條件標(biāo)志,enableAppRecovery接口狀態(tài)保存時的選項參數(shù),該類型為枚舉。

系統(tǒng)能力:以下各項對應(yīng)的系統(tǒng)能力均為SystemCapability.Ability.AbilityRuntime.Core

名稱 說明
SAVE_WHEN_ERROR 0x0001 當(dāng)發(fā)生應(yīng)用故障時保存。
SAVE_WHEN_BACKGROUND 0x0002 當(dāng)應(yīng)用切入后臺時保存。

appRecovery.SaveModeFlag

狀態(tài)保存標(biāo)志,enableAppRecovery接口狀態(tài)保存方式的參數(shù),該類型為枚舉。

系統(tǒng)能力:以下各項對應(yīng)的系統(tǒng)能力均為SystemCapability.Ability.AbilityRuntime.Core

名稱 說明
SAVE_WITH_FILE 0x0001 每次狀態(tài)保存都會寫入到本地文件緩存。
SAVE_WITH_SHARED_MEMORY 0x0002 狀態(tài)先保存在內(nèi)存中,應(yīng)用故障退出時寫入到本地文件緩存。

appRecovery.enableAppRecovery

enableAppRecovery(restart?: RestartFlag, saveOccasion?: SaveOccasionFlag, saveMode?: SaveModeFlag) : void;

使能應(yīng)用恢復(fù)功能,參數(shù)按順序填入。

系統(tǒng)能力:SystemCapability.Ability.AbilityRuntime.Core

參數(shù):

參數(shù)名 類型 必填 說明
restart RestartFlag 枚舉類型,發(fā)生對應(yīng)故障時是否重啟,默認(rèn)為不重啟。
saveOccasion SaveOccasionFlag 枚舉類型,狀態(tài)保存時機(jī),默認(rèn)為故障時保存。
saveMode SaveModeFlag 枚舉類型,狀態(tài)保存方式, 默認(rèn)為文件緩存。

示例:

import appRecovery from '@ohos.app.ability.appRecovery';
import AbilityStage from '@ohos.app.ability.AbilityStage';

export default class MyAbilityStage extends AbilityStage {
    onCreate() {
        appRecovery.enableAppRecovery(
            appRecovery.RestartFlag.ALWAYS_RESTART,
            appRecovery.SaveOccasionFlag.SAVE_WHEN_ERROR,
            appRecovery.SaveModeFlag.SAVE_WITH_FILE
        );
    }
}

appRecovery.restartApp

restartApp(): void;

重啟當(dāng)前App進(jìn)程,可以配合errorManager相關(guān)接口使用。

系統(tǒng)能力:SystemCapability.Ability.AbilityRuntime.Core

示例:

import appRecovery from '@ohos.app.ability.appRecovery';
import errorManager from '@ohos.app.ability.errorManager';

let observer = {
    onUnhandledException(errorMsg) {
        console.log('onUnhandledException, errorMsg: ', errorMsg);
        appRecovery.restartApp();
    }
};

try {
    errorManager.on('error', observer);
} catch (paramError) {
    console.log('error: ' + paramError.code + ', ' + paramError.message);
}

appRecovery.saveAppState

saveAppState(): boolean;

保存當(dāng)前App狀態(tài),可以配合errorManager相關(guān)接口使用

系統(tǒng)能力:SystemCapability.Ability.AbilityRuntime.Core

返回值:

類型 說明
boolean 保存成功與否。true:保存成功,false:保存失敗。

示例:

import appRecovery from '@ohos.app.ability.appRecovery';
import errorManager from '@ohos.app.ability.errorManager';

let observer = {
    onUnhandledException(errorMsg) {
        console.log('onUnhandledException, errorMsg: ', errorMsg);
        appRecovery.saveAppState();
    }
};

try {
    errorManager.on('error', observer);
} catch (paramError) {
    console.log('error: ' + paramError.code + ', ' + paramError.message);
}

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    8598

    瀏覽量

    151163
  • 鴻蒙
    +關(guān)注

    關(guān)注

    57

    文章

    2352

    瀏覽量

    42859
收藏 人收藏

    評論

    相關(guān)推薦

    鴻蒙開發(fā)接口Ability框架:【@ohos.application.Ability (Ability)】

    Ability模塊提供對Ability生命周期、上下文環(huán)境等調(diào)用管理的能力,包括Ability創(chuàng)建、銷毀、轉(zhuǎn)儲客戶端信息等。
    的頭像 發(fā)表于 04-30 17:42 ?2267次閱讀
    <b class='flag-5'>鴻蒙</b>開發(fā)接口<b class='flag-5'>Ability</b>框架:【@<b class='flag-5'>ohos.application.Ability</b> (<b class='flag-5'>Ability</b>)】

    鴻蒙開發(fā)接口Ability框架:【@ohos.ability.featureAbility (FeatureAbility模塊)】

    FeatureAbility模塊提供帶有UI設(shè)計與用戶交互的能力,包括啟動新的ability、獲取dataAbilityHelper、設(shè)置此Page Ability、獲取當(dāng)前Ability對應(yīng)的窗口,連接服務(wù)等。
    的頭像 發(fā)表于 05-06 16:31 ?1003次閱讀
    <b class='flag-5'>鴻蒙</b>開發(fā)接口<b class='flag-5'>Ability</b>框架:【@<b class='flag-5'>ohos.ability</b>.featureAbility (FeatureAbility模塊)】

    鴻蒙開發(fā)接口Ability框架:【@ohos.application.missionManager (missionManager)】

    表示Ability對應(yīng)任務(wù)信息的枚舉。
    的頭像 發(fā)表于 05-08 09:19 ?901次閱讀
    <b class='flag-5'>鴻蒙</b>開發(fā)接口<b class='flag-5'>Ability</b>框架:【@<b class='flag-5'>ohos</b>.application.missionManager (missionManager)】

    鴻蒙開發(fā)接口Ability框架:【@ohos.ability.particleAbility (particleAbility模塊)】

    particleAbility模塊提供了Service類型Ability的能力,包括啟動、停止指定的particleAbility,獲取dataAbilityHelper,連接、斷開當(dāng)前Ability與指定ServiceAbility等。
    的頭像 發(fā)表于 05-09 10:21 ?720次閱讀
    <b class='flag-5'>鴻蒙</b>開發(fā)接口<b class='flag-5'>Ability</b>框架:【@<b class='flag-5'>ohos.ability</b>.particleAbility (particleAbility模塊)】

    鴻蒙原生應(yīng)用/元服務(wù)開發(fā)-Stage模型能力接口(九)上

    @ohos.app.ability.UIAbility (UIAbility) 一、說明 UIAbility是包含UI界面的應(yīng)用組件,提供組件創(chuàng)建、銷毀、前后臺切換等生命周期回調(diào),同時也具備組件協(xié)同
    發(fā)表于 12-21 15:41

    鴻蒙Ability開發(fā)-Stage模型下Ability的創(chuàng)建和使用

    ); hilog.info(ENTRY_ABILITY_DOMAIN, TAG, \'%{public}s\', \'Ability onBackground\'); } } 本文內(nèi)容是鴻蒙開發(fā)中
    發(fā)表于 01-08 15:34

    鴻蒙應(yīng)用模型開發(fā)-更新SDK后報錯解決

    變更,可以嘗試替換為新的模塊名(常用接口如下): 原有接口 新接口 @ohos.application.Ability @ohos.app.ability
    發(fā)表于 02-18 17:17

    跟阿斌一起學(xué)鴻蒙(2): Ability vs App?

    通信。* 4). 一個App(應(yīng)用)由多個Ability(能力)組成,而這些Ability是操作系統(tǒng)管理的基本單元。于是,在鴻蒙OS上,如果你想* 要跟朋友聊天,你可以在手機(jī)上聊天,在
    發(fā)表于 11-30 20:56

    跟阿斌一起學(xué)鴻蒙(2): Ability vs App?

    通信。* 4). 一個App(應(yīng)用)由多個Ability(能力)組成,而這些Ability是操作系統(tǒng)管理的基本單元。于是,在鴻蒙OS上,如果你想* 要跟朋友聊天,你可以在手機(jī)上聊天,在
    發(fā)表于 12-02 16:55

    圖解鴻蒙Page Ability的LaunchType

    Ability。總之,擁有singleton模式的Page Ability將永遠(yuǎn)使用唯一的實(shí)例;這里涉及到一個棧的概念,這是HarmonyOS管理Page Ability的模式。HarmonyOS
    發(fā)表于 12-24 09:09

    OpenHarmony開發(fā)Ability架構(gòu)

    生命周期更加復(fù)雜。PageAbility生命周期回調(diào)如下圖所示:其他類型Ability的生命周期可參考PageAbility生命周期去除前后臺切換以及onShow的部分進(jìn)行理解。開發(fā)者可以在 app
    發(fā)表于 05-12 15:12

    HarmonyOS/OpenHarmony應(yīng)用開發(fā)-ArkTS的Ability基類

    在Stage模型下使用。導(dǎo)入模塊:import Ability from '@ohos.app.ability.Ability';接口說明:Ability
    發(fā)表于 03-09 15:11

    鴻蒙開發(fā)EventHub

    '@ohos.app.ability.UIAbility';export default class MainAbility extends Ability { func1(){ console.log('func1
    的頭像 發(fā)表于 02-21 14:32 ?391次閱讀
    <b class='flag-5'>鴻蒙</b>開發(fā)<b class='flag-5'>之</b>EventHub

    鴻蒙OS開發(fā)實(shí)例:【工具類封裝-頁面路由】

    import common from '@ohos.app.ability.common'; import router from '@ohos.router'封裝app內(nèi)的頁面之間跳轉(zhuǎn)
    的頭像 發(fā)表于 03-28 16:16 ?920次閱讀
    <b class='flag-5'>鴻蒙</b>OS開發(fā)實(shí)例:【工具類封裝-頁面路由】

    鴻蒙Ability Kit(程序框架服務(wù))【Ability與ServiceExtensionAbility通信】

    本示例展示通過[IDL的方式]和?[@ohos.rpc]?等接口實(shí)現(xiàn)了Ability與ServiceExtensionAbility之間的通信。
    的頭像 發(fā)表于 06-05 09:28 ?492次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>Ability</b> Kit(程序框架服務(wù))【<b class='flag-5'>Ability</b>與ServiceExtensionAbility通信】