HarmonyOS的应用崩溃后如何关闭蓝牙等连接 ?

HarmonyOS的应用崩溃后如何关闭蓝牙等连接 ?

阅读 636
1 个回答

你可以参考通用能力里的errorManager,该模块提供对错误观察器的注册和注销的能力。注意:注册后可以捕获到应用产生的js crash,应用崩溃时进程不会退出。参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-refere...
参考代码:

// EntryAbility.ets 
let registerId = -1; 
let callback: errorManager.ErrorObserver = { 
  onUnhandledException: (errMsg) => { 
    console.log('onException, onUnhandledException:'+errMsg); 
  }, 
  onException: (errorObj) => { 
    console.log('onException, name: ', errorObj.name); 
    console.log('onException, message: ', errorObj.message); 
    if (typeof(errorObj.stack) === 'string') { 
      console.log('onException, stack: ', errorObj.stack); 
    } 
  } 
} 
export default class EntryAbility extends UIAbility { 
  onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void { 
    hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate'); 
    try { 
      registerId = errorManager.on('error', callback); 
    } catch (paramError) { 
      let code = (paramError as BusinessError).code; 
      let message = (paramError as BusinessError).message; 
      console.error(`error: ${code}, ${message}`); 
    } 
  } 
  onDestroy(): void { 
    hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onDestroy'); 
    try { 
      errorManager.off('error', registerId) 
        .then((data) => { 
          console.log('----------- unregisterErrorObserver success ----------', data); 
        }) 
        .catch((err: BusinessError) => { 
          console.error('----------- unregisterErrorObserver fail ----------', err); 
        }); 
    } catch (paramError) { 
      let code = (paramError as BusinessError).code; 
      let message = (paramError as BusinessError).message; 
      console.error(`error: ${code}, ${message}`); 
    } 
  } 
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进