Runninglock鎖

2024-01-23 17:38 更新

該模塊主要提供RunningLock鎖相關(guān)操作的接口,包括創(chuàng)建、查詢、持鎖、釋放鎖等操作。

說(shuō)明

本模塊首批接口從API version 7開(kāi)始支持。后續(xù)版本的新增接口,采用上角標(biāo)單獨(dú)標(biāo)記接口的起始版本。

導(dǎo)入模塊

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

runningLock.isSupported9+

isSupported(type: RunningLockType): boolean;

查詢系統(tǒng)是否支持該類型的鎖。

系統(tǒng)能力: SystemCapability.PowerManager.PowerManager.Core

參數(shù):

參數(shù)名類型必填說(shuō)明
typeRunningLockType需要查詢的鎖的類型。

返回值:

類型說(shuō)明
boolean返回true表示支持,返回false表示不支持。

錯(cuò)誤碼:

以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)RunningLock鎖錯(cuò)誤碼。

錯(cuò)誤碼ID錯(cuò)誤信息
4900101連接服務(wù)失敗。

示例:

  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

創(chuàng)建RunningLock鎖。

系統(tǒng)能力: SystemCapability.PowerManager.PowerManager.Core

需要權(quán)限: ohos.permission.RUNNING_LOCK

參數(shù):

參數(shù)名類型必填說(shuō)明
namestring鎖的名字。
typeRunningLockType要?jiǎng)?chuàng)建的鎖的類型。
callbackAsyncCallback<RunningLock>回調(diào)函數(shù)。當(dāng)創(chuàng)建鎖成功,err為undefined,data為創(chuàng)建的RunningLock;否則為錯(cuò)誤對(duì)象。

錯(cuò)誤碼:

以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)RunningLock鎖錯(cuò)誤碼。

錯(cuò)誤碼ID錯(cuò)誤信息
4900101連接服務(wù)器失敗。

示例:

  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>

創(chuàng)建RunningLock鎖。

系統(tǒng)能力: SystemCapability.PowerManager.PowerManager.Core

需要權(quán)限: ohos.permission.RUNNING_LOCK

參數(shù):

參數(shù)名類型必填說(shuō)明
namestring鎖的名字。
typeRunningLockType要?jiǎng)?chuàng)建的鎖的類型。

返回值:

類型說(shuō)明
Promise<RunningLock>Promise對(duì)象,返回RunningLock鎖對(duì)象。

錯(cuò)誤碼:

以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)RunningLock鎖錯(cuò)誤碼。

錯(cuò)誤碼ID錯(cuò)誤信息
4900101連接服務(wù)器失敗。

示例:

  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

說(shuō)明

從API version 9開(kāi)始不再維護(hù),建議使用runningLock.isSupported替代。

查詢系統(tǒng)是否支持該類型的鎖。使用callback異步回調(diào)。

系統(tǒng)能力: SystemCapability.PowerManager.PowerManager.Core

參數(shù):

參數(shù)名類型必填說(shuō)明
typeRunningLockType需要查詢的鎖的類型。
callbackAsyncCallback<boolean>回調(diào)函數(shù)。當(dāng)查詢成功,err為undefined,data為獲取到的支持情況,返回true表示支持,返回false表示不支持;否則為錯(cuò)誤對(duì)象。

示例:

  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>

說(shuō)明

從API version 9開(kāi)始不再維護(hù),建議使用runningLock.isSupported替代。

查詢系統(tǒng)是否支持該類型的鎖。使用Promise異步回調(diào)。

系統(tǒng)能力: SystemCapability.PowerManager.PowerManager.Core

參數(shù):

參數(shù)名類型必填說(shuō)明
typeRunningLockType需要查詢的鎖的類型。

返回值:

類型說(shuō)明
Promise<boolean>Promise對(duì)象。返回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

說(shuō)明

從API version 9開(kāi)始不再維護(hù),建議使用runningLock.create替代。

創(chuàng)建RunningLock鎖。

系統(tǒng)能力: SystemCapability.PowerManager.PowerManager.Core

需要權(quán)限: ohos.permission.RUNNING_LOCK

參數(shù):

參數(shù)名類型必填說(shuō)明
namestring鎖的名字。
typeRunningLockType要?jiǎng)?chuàng)建的鎖的類型。
callbackAsyncCallback<RunningLock>回調(diào)函數(shù)。當(dāng)創(chuàng)建鎖成功,err為undefined,data為創(chuàng)建的RunningLock;否則為錯(cuò)誤對(duì)象。

示例:

  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>

說(shuō)明

從API version 9開(kāi)始不再維護(hù),建議使用runningLock.create替代。

創(chuàng)建RunningLock鎖。

系統(tǒng)能力: SystemCapability.PowerManager.PowerManager.Core

需要權(quán)限: ohos.permission.RUNNING_LOCK

參數(shù):

參數(shù)名類型必填說(shuō)明
namestring鎖的名字。
typeRunningLockType要?jiǎng)?chuàng)建的鎖的類型。

返回值:

類型說(shuō)明
Promise<RunningLock>Promise對(duì)象,返回RunningLock鎖對(duì)象。

示例:

  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

阻止系統(tǒng)休眠的鎖。

hold9+

hold(timeout: number): void

鎖定和持有RunningLock。

系統(tǒng)能力: SystemCapability.PowerManager.PowerManager.Core

需要權(quán)限: ohos.permission.RUNNING_LOCK

參數(shù):

參數(shù)名類型必填說(shuō)明
timeoutnumber鎖定和持有RunningLock的時(shí)長(zhǎng),單位:毫秒。

錯(cuò)誤碼:

以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)RunningLock鎖錯(cuò)誤碼。

錯(cuò)誤碼ID錯(cuò)誤信息
4900101連接服務(wù)器失敗。

示例:

  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鎖。

系統(tǒng)能力: SystemCapability.PowerManager.PowerManager.Core

需要權(quán)限: ohos.permission.RUNNING_LOCK

錯(cuò)誤碼:

以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)RunningLock鎖錯(cuò)誤碼。

錯(cuò)誤碼ID錯(cuò)誤信息
4900101連接服務(wù)器失敗。

示例:

  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

查詢當(dāng)前RunningLock是持有狀態(tài)還是釋放狀態(tài)。

系統(tǒng)能力: SystemCapability.PowerManager.PowerManager.Core

返回值:

類型說(shuō)明
boolean返回true表示當(dāng)前RunningLock是持有狀態(tài),返回false表示當(dāng)前RunningLock是釋放狀態(tài)。

錯(cuò)誤碼:

以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)RunningLock鎖錯(cuò)誤碼。

錯(cuò)誤碼ID錯(cuò)誤信息
4900101連接服務(wù)失敗。

示例:

  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

說(shuō)明

從API version 9開(kāi)始不再維護(hù),建議使用RunningLock.hold替代。

鎖定和持有RunningLock。

系統(tǒng)能力: SystemCapability.PowerManager.PowerManager.Core

需要權(quán)限: ohos.permission.RUNNING_LOCK

參數(shù):

參數(shù)名類型必填說(shuō)明
timeoutnumber鎖定和持有RunningLock的時(shí)長(zhǎng),單位:毫秒。

示例:

  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

說(shuō)明

從API version 9開(kāi)始不再維護(hù),建議使用RunningLock.unhold替代。

釋放RunningLock鎖。

系統(tǒng)能力: SystemCapability.PowerManager.PowerManager.Core

需要權(quán)限: 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

說(shuō)明

從API version 9開(kāi)始不再維護(hù),建議使用RunningLock.isHolding替代。

查詢當(dāng)前RunningLock是持有狀態(tài)還是釋放狀態(tài)。

系統(tǒng)能力: SystemCapability.PowerManager.PowerManager.Core

返回值:

類型說(shuō)明
boolean返回true表示當(dāng)前RunningLock是持有狀態(tài),返回false表示當(dāng)前RunningLock是釋放狀態(tài)。

示例:

  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鎖的類型。

系統(tǒng)能力: SystemCapability.PowerManager.PowerManager.Core

名稱說(shuō)明
BACKGROUND1阻止系統(tǒng)休眠的鎖。
PROXIMITY_SCREEN_CONTROL2通過(guò)接近或者遠(yuǎn)離狀態(tài)來(lái)控制亮滅屏的鎖。
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)