# Runninglock锁
> **说明:**
>从 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)
});
```