@ohos.app.ability.appRecovery (appRecovery)
The appRecovery module provides APIs for recovering faulty applications.
NOTE
The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version. In the current version, only applications with a single ability in a single process can be recovered.
Modules to Import
import appRecovery from '@ohos.app.ability.appRecovery';
appRecovery.RestartFlag
Enumerates the application restart flags. This enum is used as an input parameter of enableAppRecovery.
System capability: SystemCapability.Ability.AbilityRuntime.Core
Name | Value | Description |
---|---|---|
ALWAYS_RESTART | 0 | The application is restarted in all cases. |
RESTART_WHEN_JS_CRASH | 0x0001 | The application is restarted in the case of JS_CRASH. |
RESTART_WHEN_APP_FREEZE | 0x0002 | The application is restarted in the case of APP_FREEZE. |
NO_RESTART | 0xFFFF | The application is not restarted in any case. |
appRecovery.SaveOccasionFlag
Enumerates the scenarios for saving the application state. This enum is used as an input parameter of enableAppRecovery.
System capability: SystemCapability.Ability.AbilityRuntime.Core
Name | Value | Description |
---|---|---|
SAVE_WHEN_ERROR | 0x0001 | Saving the application state when an application fault occurs. |
SAVE_WHEN_BACKGROUND | 0x0002 | Saving the application state when the application is switched to the background. |
appRecovery.SaveModeFlag
Enumerates the application state saving modes. This enum is used as an input parameter of enableAppRecovery.
System capability: SystemCapability.Ability.AbilityRuntime.Core
Name | Value | Description |
---|---|---|
SAVE_WITH_FILE | 0x0001 | The application state is saved and written to the local file cache. |
SAVE_WITH_SHARED_MEMORY | 0x0002 | The application state is saved in the memory. When the application exits due to a fault, it is written to the local file cache. |
appRecovery.enableAppRecovery
enableAppRecovery(restart?: RestartFlag, saveOccasion?: SaveOccasionFlag, saveMode?: SaveModeFlag) : void;
Enables application recovery.
System capability: SystemCapability.Ability.AbilityRuntime.Core
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
restart | RestartFlag | No | Whether the application is restarted upon a fault. By default, the application is not restarted. |
saveOccasion | SaveOccasionFlag | No | Scenario for saving the application state. By default, the state is saved when a fault occurs. |
saveMode | SaveModeFlag | No | Application state saving mode. By default, the application state is written to the local file cache. |
Example
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;
Restarts the application. This API can be used together with APIs of errorManager.
System capability: SystemCapability.Ability.AbilityRuntime.Core
Example
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;
Saves the application state. This API can be used together with APIs of errorManager.
System capability: SystemCapability.Ability.AbilityRuntime.Core
Return value
Type | Description |
---|---|
boolean | Whether the application state is saved. The value true is returned if the application state is saved, and false is returned otherwise. |
Example
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);
}