Runninglock锁

About 2 min

Runninglock锁

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

导入模块

import runninglock from '@ohos.runningLock';
1

权限

申请、使用锁的权限:ohos.permission.RUNNING_LOCK

RunningLockType

RunningLock锁的类型。

名称 默认值 描述
BACKGROUND 1 阻止系统休眠的锁。
PROXIMITY_SCREEN_CONTROL 2 通过接近或者远离状态来控制亮灭屏的锁。

isRunningLockTypeSupported

isRunningLockTypeSupported(type: RunningLockType, callback: AsyncCallback<boolean>): 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);
        } else {
            console.log('error: ' + error);
        }
    })
    
    1
    2
    3
    4
    5
    6
    7

isRunningLockTypeSupported

isRunningLockTypeSupported(type: RunningLockType): Promise<boolean>

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

  • 参数:

    参数名 类型 必填 说明
    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);
    })
    .catch(error => {
        console.log('error: ' + error);
    });
    
    1
    2
    3
    4
    5
    6
    7

createRunningLock

createRunningLock(name: string, type: RunningLockType, callback: AsyncCallback<RunningLock>): 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);
    })
    .catch(error => {
        console.log('create runningLock test error: ' + error);
    })
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11

createRunningLock

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

创建Runninglock锁。

  • 参数:

    参数名 类型 必填 说明
    name string 锁的名字。
    type RunningLockType 要创建的锁的类型。
  • 返回值:

    类型 说明
    Promise<RunningLock> Promise实例,用于异步获取返回的RunningLock锁对象。
  • 示例:

    runningLock.createRunningLock("running_lock_test", runningLock.RunningLockType.BACKGROUND)
    .then(runninglock => {
        console.info('create runningLock success');
    })
    .catch(error => {
        console.log('create runningLock test error: ' + error);
    })
    
    1
    2
    3
    4
    5
    6
    7

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)
    });
    
    1
    2
    3
    4
    5
    6
    7
    8

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)
    });
    
    1
    2
    3
    4
    5
    6
    7
    8

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)
    });
    
    1
    2
    3
    4
    5
    6
    7
    8