# Runninglock锁 - [导入模块](#zh-cn_topic_0000001209249145_s56d19203690d4782bfc74069abb6bd71) - [权限](#zh-cn_topic_0000001209249145_section11257113618419) - [RunningLockType](#zh-cn_topic_0000001209249145_section7299123218370) - [runninglock.isRunningLockTypeSupported](#zh-cn_topic_0000001209249145_section192192415554) - [runninglock.isRunningLockTypeSupported](#zh-cn_topic_0000001209249145_section517513334611) - [runningLock.createRunningLock](#zh-cn_topic_0000001209249145_section787751152220) - [runningLock.createRunningLock](#zh-cn_topic_0000001209249145_section16799155115717) - [RunningLock](#zh-cn_topic_0000001209249145_section189341937163212) - [lock](#zh-cn_topic_0000001209249145_section86521450132716) - [unlock](#zh-cn_topic_0000001209249145_section19100160122813) - [isUsed](#zh-cn_topic_0000001209249145_section1410593619146) >![](../../public_sys-resources/icon-note.gif) **说明:** >从 API Version 7 开始支持。 ## 导入模块 ``` import runninglock from '@runninglock'; ``` ## 权限 申请、使用锁的权限:ohos.permission.RUNNING\_LOCK ## RunningLockType Runninglock锁的类型。

名称

默认值

描述

BACKGROUND

1

阻止系统休眠的锁。

PROXIMITY_SCREEN_CONTROL

2

通过接近或者远离状态来控制亮灭屏的锁。

## runninglock.isRunningLockTypeSupported isRunningLockTypeSupported\(type: RunningLockType, callback: AsyncCallback\): void 查询系统是否支持该类型的锁。 - 参数:

参数名

类型

必填

说明

type

RunningLockType

需要查询的锁的类型。

callback

AsyncCallback<boolean>

指定的callback回调方法,用于获取返回值。

callback返回值:支持返回true,不支持返回false。

- 示例: ``` runningLock.isRunningLockTypeSupported(runningLock.RunningLockType.BACKGROUND, (error, supported) => { if (typeof error === "undefined") { console.info('BACKGROUND support status is ' + supported); done(); } else { console.log('error: ' + error); done(); } }) ``` ## runninglock.isRunningLockTypeSupported isRunningLockTypeSupported\(type: RunningLockType\): Promise 查询系统是否支持该类型的锁。 - 参数:

参数名

类型

必填

说明

type

RunningLockType

需要查询的锁的类型。

- 返回值:

类型

说明

Promise<boolean>

Promise实例,用于异步获取返回值,支持返回true,不支持返回false。

- 示例: ``` runninglock.isRunningLockTypeSupported(runninglock.RunningLockType.PROXIMITY_SCREEN_CONTROL) .then(supported => { console.info('PROXIMITY_SCREEN_CONTROL support status is ' + supported); done(); }) .catch(error => { console.log('error: ' + error); done(); }); ``` ## runningLock.createRunningLock createRunningLock\(name: string, type: RunningLockType, callback: AsyncCallback\): void 创建Runninglock锁。 - 参数:

参数名

类型

必填

说明

name

string

锁的名字。

type

RunningLockType

要创建的锁的类型。

callback

AsyncCallback<RunningLock>

指定的callback回调方法,用于获取返回的RunningLock锁对象。

- 示例: ``` runningLock.createRunningLock("running_lock_test", runningLock.RunningLockType.BACKGROUND) .then(runninglock => { var used = runninglock.isUsed(); console.info('runninglock is used: ' + used); runninglock.lock(500); used = runninglock.isUsed(); console.info('after lock runninglock is used ' + used); done(); }) .catch(error => { console.log('create runningLock test error: ' + error); done(); }) ``` ## runningLock.createRunningLock createRunningLock\(name: string, type: RunningLockType\): Promise 创建Runninglock锁。 - 参数:

参数名

类型

必填

说明

name

string

锁的名字。

type

RunningLockType

要创建的锁的类型。

- 返回值:

类型

说明

Promise<RunningLock>

Promise实例,用于异步获取返回的RunningLock锁对象。

- 示例: ``` runningLock.createRunningLock("running_lock_test", runningLock.RunningLockType.BACKGROUND) .then(runninglock => { console.info('create runningLock success'); done(); }) .catch(error => { console.log('create runningLock test error: ' + error); done(); }) ``` ## RunningLock 阻止系统休眠的锁。 ### lock lock\(timeout: number\): void 锁定和持有RunningLock - 参数:

参数名

类型

必填

说明

timeout

number

锁定和持有Runninglock的时长。

- 示例: ``` runninglock.createRunningLock("running_lock_test", runninglock.RunningLockType.BACKGROUND) .then(runningLock => { runningLock.lock(100) console.info('create runningLock success') }) .catch(error => { console.log('Lock runningLock test error: ' + error) }); ``` ### unlock unlock\(\): void 释放Runninglock锁。 - 示例: ``` runninglock.createRunningLock("running_lock_test", runninglock.RunningLockType.BACKGROUND) .then(runningLock => { runningLock.unlock() console.info('unLock runningLock success') }) .catch(error => { console.log('unLock runningLock test error: ' + error) }); ``` ### isUsed isUsed\(\): boolean 查询当前Runninglock是持有状态,还是释放状态。 - 返回值:

类型

说明

boolean

当前Runninglock是持有状态返回true,释放状态返回false。

- 示例: ``` runninglock.createRunningLock("running_lock_test", runninglock.RunningLockType.BACKGROUND) .then(runningLock => { var used = runningLock.isUsed() console.info('runningLock used status: ' + used) }) .catch(error => { console.log('runningLock isUsed test error: ' + error) }); ```