Runninglock锁

About 11 min

Runninglock锁

说明: 从 API Version 7 开始支持。

导入模块

import runninglock from '@runninglock';
1

权限

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

RunningLockType

Runninglock锁的类型。

名称

默认值

描述

BACKGROUND

1

阻止系统休眠的锁。

PROXIMITY_SCREEN_CONTROL

2

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

runninglock.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);
            done();
        } else {
            console.log('error: ' + error);
            done();
        }
    })
    
    1
    2
    3
    4
    5
    6
    7
    8
    9

runninglock.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);
        done();
    })
    .catch(error => {
        console.log('error: ' + error);
        done();
    });
    
    1
    2
    3
    4
    5
    6
    7
    8
    9

runningLock.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);
        done();
    })
    .catch(error => {
        console.log('create runningLock test error: ' + error);
        done();
    })
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13

runningLock.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');
        done();
    })
    .catch(error => {
        console.log('create runningLock test error: ' + error);
        done();
    })
    
    1
    2
    3
    4
    5
    6
    7
    8
    9

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