Runninglock锁

2024-01-23 17:38 更新

该模块主要提供RunningLock锁相关操作的接口,包括创建、查询、持锁、释放锁等操作。

说明

本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

导入模块

  1. import runningLock from '@ohos.runningLock';

runningLock.isSupported9+

isSupported(type: RunningLockType): boolean;

查询系统是否支持该类型的锁。

系统能力: SystemCapability.PowerManager.PowerManager.Core

参数:

参数名类型必填说明
typeRunningLockType需要查询的锁的类型。

返回值:

类型说明
boolean返回true表示支持,返回false表示不支持。

错误码:

以下错误码的详细介绍请参见RunningLock锁错误码

错误码ID错误信息
4900101连接服务失败。

示例:

  1. try {
  2. var isSupported = runningLock.isSupported(runningLock.RunningLockType.BACKGROUND);
  3. console.info('BACKGROUND type supported: ' + isSupported);
  4. } catch(err) {
  5. console.error('check supported failed, err: ' + err);
  6. }

runningLock.create9+

create(name: string, type: RunningLockType, callback: AsyncCallback<RunningLock>): void

创建RunningLock锁。

系统能力: SystemCapability.PowerManager.PowerManager.Core

需要权限: ohos.permission.RUNNING_LOCK

参数:

参数名类型必填说明
namestring锁的名字。
typeRunningLockType要创建的锁的类型。
callbackAsyncCallback<RunningLock>回调函数。当创建锁成功,err为undefined,data为创建的RunningLock;否则为错误对象。

错误码:

以下错误码的详细介绍请参见RunningLock锁错误码

错误码ID错误信息
4900101连接服务器失败。

示例:

  1. runningLock.create('running_lock_test', runningLock.RunningLockType.BACKGROUND, (err, lock) => {
  2. if (typeof err === 'undefined') {
  3. console.info('created running lock: ' + lock);
  4. } else {
  5. console.error('create running lock failed, err: ' + err);
  6. }
  7. });

runningLock.create9+

create(name: string, type: RunningLockType): Promise<RunningLock>

创建RunningLock锁。

系统能力: SystemCapability.PowerManager.PowerManager.Core

需要权限: ohos.permission.RUNNING_LOCK

参数:

参数名类型必填说明
namestring锁的名字。
typeRunningLockType要创建的锁的类型。

返回值:

类型说明
Promise<RunningLock>Promise对象,返回RunningLock锁对象。

错误码:

以下错误码的详细介绍请参见RunningLock锁错误码

错误码ID错误信息
4900101连接服务器失败。

示例:

  1. runningLock.create('running_lock_test', runningLock.RunningLockType.BACKGROUND)
  2. .then(lock => {
  3. console.info('created running lock: ' + lock);
  4. })
  5. .catch(err => {
  6. console.error('create running lock failed, error: ' + err);
  7. });

runningLock.isRunningLockTypeSupported(deprecated)

isRunningLockTypeSupported(type: RunningLockType, callback: AsyncCallback<boolean>): void

说明

从API version 9开始不再维护,建议使用runningLock.isSupported替代。

查询系统是否支持该类型的锁。使用callback异步回调。

系统能力: SystemCapability.PowerManager.PowerManager.Core

参数:

参数名类型必填说明
typeRunningLockType需要查询的锁的类型。
callbackAsyncCallback<boolean>回调函数。当查询成功,err为undefined,data为获取到的支持情况,返回true表示支持,返回false表示不支持;否则为错误对象。

示例:

  1. runningLock.isRunningLockTypeSupported(runningLock.RunningLockType.BACKGROUND, (err, data) => {
  2. if (typeof err === 'undefined') {
  3. console.info('BACKGROUND lock support status: ' + data);
  4. } else {
  5. console.log('check BACKGROUND lock support status failed, err: ' + err);
  6. }
  7. });

runningLock.isRunningLockTypeSupported(deprecated)

isRunningLockTypeSupported(type: RunningLockType): Promise<boolean>

说明

从API version 9开始不再维护,建议使用runningLock.isSupported替代。

查询系统是否支持该类型的锁。使用Promise异步回调。

系统能力: SystemCapability.PowerManager.PowerManager.Core

参数:

参数名类型必填说明
typeRunningLockType需要查询的锁的类型。

返回值:

类型说明
Promise<boolean>Promise对象。返回true表示支持;返回false表示不支持。

示例:

  1. runningLock.isRunningLockTypeSupported(runningLock.RunningLockType.BACKGROUND)
  2. .then(data => {
  3. console.info('BACKGROUND lock support status: ' + data);
  4. })
  5. .catch(err => {
  6. console.log('check BACKGROUND lock support status failed, err: ' + err);
  7. });

runningLock.createRunningLock(deprecated)

createRunningLock(name: string, type: RunningLockType, callback: AsyncCallback<RunningLock>): void

说明

从API version 9开始不再维护,建议使用runningLock.create替代。

创建RunningLock锁。

系统能力: SystemCapability.PowerManager.PowerManager.Core

需要权限: ohos.permission.RUNNING_LOCK

参数:

参数名类型必填说明
namestring锁的名字。
typeRunningLockType要创建的锁的类型。
callbackAsyncCallback<RunningLock>回调函数。当创建锁成功,err为undefined,data为创建的RunningLock;否则为错误对象。

示例:

  1. runningLock.createRunningLock('running_lock_test', runningLock.RunningLockType.BACKGROUND, (err, lock) => {
  2. if (typeof err === 'undefined') {
  3. console.info('created running lock: ' + lock);
  4. } else {
  5. console.error('create running lock failed, err: ' + err);
  6. }
  7. });

runningLock.createRunningLock(deprecated)

createRunningLock(name: string, type: RunningLockType): Promise<RunningLock>

说明

从API version 9开始不再维护,建议使用runningLock.create替代。

创建RunningLock锁。

系统能力: SystemCapability.PowerManager.PowerManager.Core

需要权限: ohos.permission.RUNNING_LOCK

参数:

参数名类型必填说明
namestring锁的名字。
typeRunningLockType要创建的锁的类型。

返回值:

类型说明
Promise<RunningLock>Promise对象,返回RunningLock锁对象。

示例:

  1. runningLock.createRunningLock('running_lock_test', runningLock.RunningLockType.BACKGROUND)
  2. .then(lock => {
  3. console.info('created running lock: ' + lock);
  4. })
  5. .catch(err => {
  6. console.log('create running lock failed, err: ' + err);
  7. });

RunningLock

阻止系统休眠的锁。

hold9+

hold(timeout: number): void

锁定和持有RunningLock。

系统能力: SystemCapability.PowerManager.PowerManager.Core

需要权限: ohos.permission.RUNNING_LOCK

参数:

参数名类型必填说明
timeoutnumber锁定和持有RunningLock的时长,单位:毫秒。

错误码:

以下错误码的详细介绍请参见RunningLock锁错误码

错误码ID错误信息
4900101连接服务器失败。

示例:

  1. runningLock.create('running_lock_test', runningLock.RunningLockType.BACKGROUND)
  2. .then(lock => {
  3. console.info('create running lock success');
  4. try {
  5. lock.hold(500);
  6. console.info('hold running lock success');
  7. } catch(err) {
  8. console.error('hold running lock failed, err: ' + err);
  9. }
  10. })
  11. .catch(err => {
  12. console.error('create running lock failed, err: ' + err);
  13. });

unhold9+

unhold(): void

释放RunningLock锁。

系统能力: SystemCapability.PowerManager.PowerManager.Core

需要权限: ohos.permission.RUNNING_LOCK

错误码:

以下错误码的详细介绍请参见RunningLock锁错误码

错误码ID错误信息
4900101连接服务器失败。

示例:

  1. runningLock.create('running_lock_test', runningLock.RunningLockType.BACKGROUND)
  2. .then(lock => {
  3. console.info('create running lock success');
  4. try {
  5. lock.unhold();
  6. console.info('unhold running lock success');
  7. } catch(err) {
  8. console.error('unhold running lock failed, err: ' + err);
  9. }
  10. })
  11. .catch(err => {
  12. console.error('create running lock failed, err: ' + err);
  13. });

isHolding9+

isHolding(): boolean

查询当前RunningLock是持有状态还是释放状态。

系统能力: SystemCapability.PowerManager.PowerManager.Core

返回值:

类型说明
boolean返回true表示当前RunningLock是持有状态,返回false表示当前RunningLock是释放状态。

错误码:

以下错误码的详细介绍请参见RunningLock锁错误码

错误码ID错误信息
4900101连接服务失败。

示例:

  1. runningLock.create('running_lock_test', runningLock.RunningLockType.BACKGROUND)
  2. .then(lock => {
  3. console.info('create running lock success');
  4. try {
  5. var isHolding = lock.isHolding();
  6. console.info('check running lock holding status: ' + isHolding);
  7. } catch(err) {
  8. console.error('check running lock holding status failed, err: ' + err);
  9. }
  10. })
  11. .catch(err => {
  12. console.error('create running lock failed, err: ' + err);
  13. });

lock(deprecated)

lock(timeout: number): void

说明

从API version 9开始不再维护,建议使用RunningLock.hold替代。

锁定和持有RunningLock。

系统能力: SystemCapability.PowerManager.PowerManager.Core

需要权限: ohos.permission.RUNNING_LOCK

参数:

参数名类型必填说明
timeoutnumber锁定和持有RunningLock的时长,单位:毫秒。

示例:

  1. runningLock.createRunningLock('running_lock_test', runningLock.RunningLockType.BACKGROUND)
  2. .then(lock => {
  3. lock.lock(500);
  4. console.info('create running lock and lock success');
  5. })
  6. .catch(err => {
  7. console.error('create running lock failed, err: ' + err);
  8. });

unlock(deprecated)

unlock(): void

说明

从API version 9开始不再维护,建议使用RunningLock.unhold替代。

释放RunningLock锁。

系统能力: SystemCapability.PowerManager.PowerManager.Core

需要权限: ohos.permission.RUNNING_LOCK

示例:

  1. runningLock.createRunningLock('running_lock_test', runningLock.RunningLockType.BACKGROUND)
  2. .then(lock => {
  3. lock.unlock();
  4. console.info('create running lock and unlock success');
  5. })
  6. .catch(err => {
  7. console.error('create running lock failed, err: ' + err);
  8. });

isUsed(deprecated)

isUsed(): boolean

说明

从API version 9开始不再维护,建议使用RunningLock.isHolding替代。

查询当前RunningLock是持有状态还是释放状态。

系统能力: SystemCapability.PowerManager.PowerManager.Core

返回值:

类型说明
boolean返回true表示当前RunningLock是持有状态,返回false表示当前RunningLock是释放状态。

示例:

  1. runningLock.createRunningLock('running_lock_test', runningLock.RunningLockType.BACKGROUND)
  2. .then(lock => {
  3. var isUsed = lock.isUsed();
  4. console.info('check running lock used status: ' + isUsed);
  5. })
  6. .catch(err => {
  7. console.error('check running lock used status failed, err: ' + err);
  8. });

RunningLockType

RunningLock锁的类型。

系统能力: SystemCapability.PowerManager.PowerManager.Core

名称说明
BACKGROUND1阻止系统休眠的锁。
PROXIMITY_SCREEN_CONTROL2通过接近或者远离状态来控制亮灭屏的锁。
以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号