未验证 提交 c95844fa 编写于 作者: 朱天怡 提交者: Gitee

告警修复

Signed-off-by: N朱天怡 <zhutianyi2@huawei.com>
上级 32fada0b
...@@ -11,7 +11,8 @@ ...@@ -11,7 +11,8 @@
## 导入模块 ## 导入模块
```ts ```ts
import WorkSchedulerExtensionAbility from '@ohos.WorkSchedulerExtensionAbility' import WorkSchedulerExtensionAbility from '@ohos.WorkSchedulerExtensionAbility';
import workScheduler from '@ohos.resourceschedule.workScheduler';
``` ```
## 属性 ## 属性
...@@ -40,7 +41,7 @@ onWorkStart(work: workScheduler.WorkInfo): void ...@@ -40,7 +41,7 @@ onWorkStart(work: workScheduler.WorkInfo): void
```ts ```ts
export default class MyWorkSchedulerExtensionAbility extends WorkSchedulerExtensionAbility { export default class MyWorkSchedulerExtensionAbility extends WorkSchedulerExtensionAbility {
onWorkStart(workInfo) { onWorkStart(workInfo: workScheduler.WorkInfo) {
console.log('MyWorkSchedulerExtensionAbility onWorkStart' + JSON.stringify(workInfo)); console.log('MyWorkSchedulerExtensionAbility onWorkStart' + JSON.stringify(workInfo));
} }
} }
...@@ -65,7 +66,7 @@ onWorkStop(work: workScheduler.WorkInfo): void ...@@ -65,7 +66,7 @@ onWorkStop(work: workScheduler.WorkInfo): void
```ts ```ts
export default class MyWorkSchedulerExtensionAbility extends WorkSchedulerExtensionAbility { export default class MyWorkSchedulerExtensionAbility extends WorkSchedulerExtensionAbility {
onWorkStop(workInfo) { onWorkStop(workInfo: workScheduler.WorkInfo) {
console.log('MyWorkSchedulerExtensionAbility onWorkStop' + JSON.stringify(workInfo)); console.log('MyWorkSchedulerExtensionAbility onWorkStop' + JSON.stringify(workInfo));
} }
} }
......
...@@ -115,14 +115,14 @@ getRemainingDelayTime(requestId: number): Promise&lt;number&gt; ...@@ -115,14 +115,14 @@ getRemainingDelayTime(requestId: number): Promise&lt;number&gt;
**示例** **示例**
```js ```js
let delayInfo = backgroundTaskManager.requestSuspendDelay("test", () => {}); let delayInfo = backgroundTaskManager.requestSuspendDelay("test", () => {});
backgroundTaskManager.getRemainingDelayTime(delayInfo.requestId).then( res => { backgroundTaskManager.getRemainingDelayTime(delayInfo.requestId).then((res:number) => {
console.log('promise => Operation getRemainingDelayTime succeeded. Data: ' + JSON.stringify(res)); console.log('promise => Operation getRemainingDelayTime succeeded. Data: ' + JSON.stringify(res));
}).catch( err => { }).catch((err : BusinessError) => {
console.log('promise => Operation getRemainingDelayTime failed. Cause: ' + err.code); console.log('promise => Operation getRemainingDelayTime failed. Cause: ' + err.code);
}) })
``` ```
## backgroundTaskManager.cancelSuspendDelay ## backgroundTaskManager.cancelSuspendDelay
...@@ -173,31 +173,32 @@ FA模型示例: ...@@ -173,31 +173,32 @@ FA模型示例:
```js ```js
import backgroundTaskManager from '@ohos.backgroundTaskManager'; import backgroundTaskManager from '@ohos.backgroundTaskManager';
import featureAbility from '@ohos.ability.featureAbility'; import featureAbility from '@ohos.ability.featureAbility';
import wantAgent from '@ohos.app.ability.wantAgent'; import wantAgent, { WantAgent } from '@ohos.app.ability.wantAgent';
import { BusinessError } from '@ohos.base';
function callback(err, data) {
if (err) { function callback(err: BusinessError, data: void) {
console.error("Operation startBackgroundRunning failed Cause: " + err); if (err) {
} else { console.error("Operation startBackgroundRunning failed Cause: " + err);
console.info("Operation startBackgroundRunning succeeded"); } else {
} console.info("Operation startBackgroundRunning succeeded");
}
} }
let wantAgentInfo = { let wantAgentInfo : wantAgent.WantAgentInfo = {
wants: [ wants: [
{ {
bundleName: "com.example.myapplication", bundleName: "com.example.myapplication",
abilityName: "EntryAbility" abilityName: "EntryAbility"
} }
], ],
operationType: wantAgent.OperationType.START_ABILITY, operationType: wantAgent.OperationType.START_ABILITY,
requestCode: 0, requestCode: 0,
wantAgentFlags: [wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG] wantAgentFlags: [wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG]
}; };
wantAgent.getWantAgent(wantAgentInfo).then((wantAgentObj) => { wantAgent.getWantAgent(wantAgentInfo).then((wantAgentObj : WantAgent) => {
backgroundTaskManager.startBackgroundRunning(featureAbility.getContext(), backgroundTaskManager.startBackgroundRunning(featureAbility.getContext(),
backgroundTaskManager.BackgroundMode.LOCATION, wantAgentObj, callback) backgroundTaskManager.BackgroundMode.LOCATION, wantAgentObj, callback)
}); });
``` ```
...@@ -207,35 +208,36 @@ Stage模型示例: ...@@ -207,35 +208,36 @@ Stage模型示例:
```ts ```ts
import UIAbility from '@ohos.app.ability.UIAbility'; import UIAbility from '@ohos.app.ability.UIAbility';
import backgroundTaskManager from '@ohos.backgroundTaskManager'; import backgroundTaskManager from '@ohos.backgroundTaskManager';
import wantAgent from '@ohos.app.ability.wantAgent'; import wantAgent, { WantAgent } from '@ohos.app.ability.wantAgent';
import { BusinessError } from '@ohos.base';
function callback(err, data) {
if (err) { function callback(err: BusinessError, data: void) {
console.error("Operation startBackgroundRunning failed Cause: " + err); if (err) {
} else { console.error("Operation startBackgroundRunning failed Cause: " + err);
console.info("Operation startBackgroundRunning succeeded"); } else {
} console.info("Operation startBackgroundRunning succeeded");
}
} }
export default class EntryAbility extends UIAbility { export default class EntryAbility extends UIAbility {
onCreate(want, launchParam) { onCreate(want: Want, launchParam: AbilityConstant.LaunchParam) {
let wantAgentInfo = { let wantAgentInfo : wantAgent.WantAgentInfo = {
wants: [ wants: [
{ {
bundleName: "com.example.myapplication", bundleName: "com.example.myapplication",
abilityName: "EntryAbility" abilityName: "EntryAbility"
} }
], ],
operationType: wantAgent.OperationType.START_ABILITY, operationType: wantAgent.OperationType.START_ABILITY,
requestCode: 0, requestCode: 0,
wantAgentFlags: [wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG] wantAgentFlags: [wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG]
}; };
wantAgent.getWantAgent(wantAgentInfo).then((wantAgentObj) => { wantAgent.getWantAgent(wantAgentInfo).then((wantAgentObj : WantAgent) => {
backgroundTaskManager.startBackgroundRunning(this.context, backgroundTaskManager.startBackgroundRunning(this.context,
backgroundTaskManager.BackgroundMode.LOCATION, wantAgentObj, callback) backgroundTaskManager.BackgroundMode.LOCATION, wantAgentObj, callback)
}); });
} }
}; };
``` ```
...@@ -270,27 +272,28 @@ FA模型示例: ...@@ -270,27 +272,28 @@ FA模型示例:
```js ```js
import backgroundTaskManager from '@ohos.backgroundTaskManager'; import backgroundTaskManager from '@ohos.backgroundTaskManager';
import featureAbility from '@ohos.ability.featureAbility'; import featureAbility from '@ohos.ability.featureAbility';
import wantAgent from '@ohos.app.ability.wantAgent'; import wantAgent, { WantAgent } from '@ohos.app.ability.wantAgent';
import { BusinessError } from '@ohos.base';
let wantAgentInfo = {
wants: [ let wantAgentInfo : wantAgent.WantAgentInfo = {
{ wants: [
bundleName: "com.example.myapplication", {
abilityName: "EntryAbility" bundleName: "com.example.myapplication",
} abilityName: "EntryAbility"
], }
operationType: wantAgent.OperationType.START_ABILITY, ],
requestCode: 0, operationType: wantAgent.OperationType.START_ABILITY,
wantAgentFlags: [wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG] requestCode: 0,
wantAgentFlags: [wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG]
}; };
wantAgent.getWantAgent(wantAgentInfo).then((wantAgentObj) => { wantAgent.getWantAgent(wantAgentInfo).then((wantAgentObj: WantAgent) => {
backgroundTaskManager.startBackgroundRunning(featureAbility.getContext(), backgroundTaskManager.startBackgroundRunning(featureAbility.getContext(),
backgroundTaskManager.BackgroundMode.LOCATION, wantAgentObj).then(() => { backgroundTaskManager.BackgroundMode.LOCATION, wantAgentObj).then(() => {
console.info("Operation startBackgroundRunning succeeded"); console.info("Operation startBackgroundRunning succeeded");
}).catch((err) => { }).catch((err: BusinessError) => {
console.error("Operation startBackgroundRunning failed Cause: " + err); console.error("Operation startBackgroundRunning failed Cause: " + err);
}); });
}); });
``` ```
...@@ -299,31 +302,32 @@ Stage模型示例: ...@@ -299,31 +302,32 @@ Stage模型示例:
```ts ```ts
import UIAbility from '@ohos.app.ability.UIAbility'; import UIAbility from '@ohos.app.ability.UIAbility';
import backgroundTaskManager from '@ohos.backgroundTaskManager'; import backgroundTaskManager from '@ohos.backgroundTaskManager';
import wantAgent from '@ohos.app.ability.wantAgent'; import wantAgent, { WantAgent } from '@ohos.app.ability.wantAgent';
import { BusinessError } from '@ohos.base';
export default class EntryAbility extends UIAbility { export default class EntryAbility extends UIAbility {
onCreate(want, launchParam) { onCreate(want: Want, launchParam: AbilityConstant.LaunchParam) {
let wantAgentInfo = { let wantAgentInfo : wantAgent.WantAgentInfo = {
wants: [ wants: [
{ {
bundleName: "com.example.myapplication", bundleName: "com.example.myapplication",
abilityName: "EntryAbility" abilityName: "EntryAbility"
} }
], ],
operationType: wantAgent.OperationType.START_ABILITY, operationType: wantAgent.OperationType.START_ABILITY,
requestCode: 0, requestCode: 0,
wantAgentFlags: [wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG] wantAgentFlags: [wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG]
}; };
wantAgent.getWantAgent(wantAgentInfo).then((wantAgentObj) => { wantAgent.getWantAgent(wantAgentInfo).then((wantAgentObj : WantAgent) => {
backgroundTaskManager.startBackgroundRunning(this.context, backgroundTaskManager.startBackgroundRunning(this.context,
backgroundTaskManager.BackgroundMode.LOCATION, wantAgentObj).then(() => { backgroundTaskManager.BackgroundMode.LOCATION, wantAgentObj).then(() => {
console.info("Operation startBackgroundRunning succeeded"); console.info("Operation startBackgroundRunning succeeded");
}).catch((err) => { }).catch((err: BusinessError) => {
console.error("Operation startBackgroundRunning failed Cause: " + err); console.error("Operation startBackgroundRunning failed Cause: " + err);
}); });
}); });
} }
}; };
``` ```
...@@ -349,13 +353,14 @@ FA模型示例: ...@@ -349,13 +353,14 @@ FA模型示例:
```js ```js
import backgroundTaskManager from '@ohos.backgroundTaskManager'; import backgroundTaskManager from '@ohos.backgroundTaskManager';
import featureAbility from '@ohos.ability.featureAbility'; import featureAbility from '@ohos.ability.featureAbility';
import { BusinessError } from '@ohos.base';
function callback(err, data) { function callback(err: BusinessError, data: void) {
if (err) { if (err) {
console.error("Operation stopBackgroundRunning failed Cause: " + err); console.error("Operation stopBackgroundRunning failed Cause: " + err);
} else { } else {
console.info("Operation stopBackgroundRunning succeeded"); console.info("Operation stopBackgroundRunning succeeded");
} }
} }
backgroundTaskManager.stopBackgroundRunning(featureAbility.getContext(), callback); backgroundTaskManager.stopBackgroundRunning(featureAbility.getContext(), callback);
...@@ -367,19 +372,20 @@ Stage模型示例: ...@@ -367,19 +372,20 @@ Stage模型示例:
```ts ```ts
import UIAbility from '@ohos.app.ability.UIAbility'; import UIAbility from '@ohos.app.ability.UIAbility';
import backgroundTaskManager from '@ohos.backgroundTaskManager'; import backgroundTaskManager from '@ohos.backgroundTaskManager';
import { BusinessError } from '@ohos.base';
function callback(err, data) { function callback(err: BusinessError, data: void) {
if (err) { if (err) {
console.error("Operation stopBackgroundRunning failed Cause: " + err); console.error("Operation stopBackgroundRunning failed Cause: " + err);
} else { } else {
console.info("Operation stopBackgroundRunning succeeded"); console.info("Operation stopBackgroundRunning succeeded");
} }
} }
export default class EntryAbility extends UIAbility { export default class EntryAbility extends UIAbility {
onCreate(want, launchParam) { onCreate(want: Want, launchParam: AbilityConstant.LaunchParam) {
backgroundTaskManager.stopBackgroundRunning(this.context, callback); backgroundTaskManager.stopBackgroundRunning(this.context, callback);
} }
}; };
``` ```
...@@ -410,11 +416,12 @@ FA模型示例: ...@@ -410,11 +416,12 @@ FA模型示例:
```js ```js
import backgroundTaskManager from '@ohos.backgroundTaskManager'; import backgroundTaskManager from '@ohos.backgroundTaskManager';
import featureAbility from '@ohos.ability.featureAbility'; import featureAbility from '@ohos.ability.featureAbility';
import { BusinessError } from '@ohos.base';
backgroundTaskManager.stopBackgroundRunning(featureAbility.getContext()).then(() => { backgroundTaskManager.stopBackgroundRunning(featureAbility.getContext()).then(() => {
console.info("Operation stopBackgroundRunning succeeded"); console.info("Operation stopBackgroundRunning succeeded");
}).catch((err) => { }).catch((err: BusinessError) => {
console.error("Operation stopBackgroundRunning failed Cause: " + err); console.error("Operation stopBackgroundRunning failed Cause: " + err);
}); });
``` ```
...@@ -424,15 +431,16 @@ Stage模型示例: ...@@ -424,15 +431,16 @@ Stage模型示例:
```ts ```ts
import UIAbility from '@ohos.app.ability.UIAbility'; import UIAbility from '@ohos.app.ability.UIAbility';
import backgroundTaskManager from '@ohos.backgroundTaskManager'; import backgroundTaskManager from '@ohos.backgroundTaskManager';
import { BusinessError } from '@ohos.base';
export default class EntryAbility extends UIAbility { export default class EntryAbility extends UIAbility {
onCreate(want, launchParam) { onCreate(want: Want, launchParam: AbilityConstant.LaunchParam) {
backgroundTaskManager.stopBackgroundRunning(this.context).then(() => { backgroundTaskManager.stopBackgroundRunning(this.context).then(() => {
console.info("Operation stopBackgroundRunning succeeded"); console.info("Operation stopBackgroundRunning succeeded");
}).catch((err) => { }).catch((err: BusinessError) => {
console.error("Operation stopBackgroundRunning failed Cause: " + err); console.error("Operation stopBackgroundRunning failed Cause: " + err);
}); });
} }
}; };
``` ```
......
...@@ -15,9 +15,10 @@ WorkSchedulerExtensionContext可直接作为WorkSchedulerExtension的上下文 ...@@ -15,9 +15,10 @@ WorkSchedulerExtensionContext可直接作为WorkSchedulerExtension的上下文
```ts ```ts
import WorkSchedulerExtensionAbility from '@ohos.WorkSchedulerExtensionAbility'; import WorkSchedulerExtensionAbility from '@ohos.WorkSchedulerExtensionAbility';
import workScheduler from '@ohos.resourceschedule.workScheduler';
class MyWorkSchedulerExtensionAbility extends WorkSchedulerExtensionAbility { class MyWorkSchedulerExtensionAbility extends WorkSchedulerExtensionAbility {
onWorkStart(workInfo) { onWorkStart(workInfo: workScheduler.WorkInfo) {
let WorkSchedulerExtensionContext = this.context; // 获取WorkSchedulerExtensionContext let WorkSchedulerExtensionContext = this.context; // 获取WorkSchedulerExtensionContext
} }
} }
......
...@@ -81,8 +81,9 @@ ...@@ -81,8 +81,9 @@
3. 导入模块。 3. 导入模块。
```ts ```ts
import backgroundTaskManager from '@ohos.resourceschedule.backgroundTaskManager'; import backgroundTaskManager from '@ohos.resourceschedule.backgroundTaskManager';
import wantAgent from '@ohos.app.ability.wantAgent'; import wantAgent, { WantAgent } from '@ohos.app.ability.wantAgent';
import { BusinessError } from '@ohos.base';
``` ```
4. 申请和取消长时任务。 4. 申请和取消长时任务。
...@@ -99,10 +100,10 @@ ...@@ -99,10 +100,10 @@
struct Index { struct Index {
@State message: string = 'ContinuousTask'; @State message: string = 'ContinuousTask';
// 通过getContext方法,来获取page所在的UIAbility上下文。 // 通过getContext方法,来获取page所在的UIAbility上下文。
private context = getContext(this); private context: Context = getContext(this);
startContinuousTask() { startContinuousTask() {
let wantAgentInfo = { let wantAgentInfo: wantAgent.wantAgentInfo = {
// 点击通知后,将要执行的动作列表 // 点击通知后,将要执行的动作列表
wants: [ wants: [
{ {
...@@ -119,30 +120,22 @@ ...@@ -119,30 +120,22 @@
}; };
// 通过wantAgent模块下getWantAgent方法获取WantAgent对象 // 通过wantAgent模块下getWantAgent方法获取WantAgent对象
wantAgent.getWantAgent(wantAgentInfo).then((wantAgentObj) => { wantAgent.getWantAgent(wantAgentInfo).then((wantAgentObj: WantAgent) => {
try { backgroundTaskManager.startBackgroundRunning(this.context,
backgroundTaskManager.startBackgroundRunning(this.context, backgroundTaskManager.BackgroundMode.AUDIO_RECORDING, wantAgentObj).then(() => {
backgroundTaskManager.BackgroundMode.AUDIO_RECORDING, wantAgentObj).then(() => { console.info(`Succeeded in operationing startBackgroundRunning.`);
console.info(`Succeeded in operationing startBackgroundRunning.`); }).catch((err: BusinessError) => {
}).catch((err) => { console.error(`Failed to operation startBackgroundRunning. Code is ${err.code}, message is ${err.message}`);
console.error(`Failed to operation startBackgroundRunning. Code is ${err.code}, message is ${err.message}`); });
});
} catch (error) {
console.error(`Failed to start background running. Code is ${error.code} message is ${error.message}`);
}
}); });
} }
stopContinuousTask() { stopContinuousTask() {
try { backgroundTaskManager.stopBackgroundRunning(this.context).then(() => {
backgroundTaskManager.stopBackgroundRunning(this.context).then(() => { console.info(`Succeeded in operationing stopBackgroundRunning.`);
console.info(`Succeeded in operationing stopBackgroundRunning.`); }).catch((err: BusinessError) => {
}).catch((err) => { console.error(`Failed to operation stopBackgroundRunning. Code is ${err.code}, message is ${err.message}`);
console.error(`Failed to operation stopBackgroundRunning. Code is ${err.code}, message is ${err.message}`); });
});
} catch (error) {
console.error(`Failed to stop background running. Code is ${error.code} message is ${error.message}`);
}
} }
build() { build() {
...@@ -192,131 +185,129 @@ ...@@ -192,131 +185,129 @@
**跨设备或跨应用**申请长时任务示例代码如下: **跨设备或跨应用**申请长时任务示例代码如下:
```ts ```ts
import UIAbility from '@ohos.app.ability.UIAbility'; import UIAbility from '@ohos.app.ability.UIAbility';
import window from '@ohos.window';
const MSG_SEND_METHOD: string = 'CallSendMsg' import AbilityConstant from '@ohos.app.ability.AbilityConstant';
import Want from '@ohos.app.ability.Want';
let mContext = null; import rpc from '@ohos.rpc';
function startContinuousTask() { const MSG_SEND_METHOD: string = 'CallSendMsg'
let wantAgentInfo = {
// 点击通知后,将要执行的动作列表 let mContext: Context;
wants: [
{ function startContinuousTask() {
bundleName: "com.example.myapplication", let wantAgentInfo : wantAgent.WantAgentInfo = {
abilityName: "com.example.myapplication.MainAbility", // 点击通知后,将要执行的动作列表
} wants: [
], {
// 点击通知后,动作类型 bundleName: "com.example.myapplication",
operationType: wantAgent.OperationType.START_ABILITY, abilityName: "com.example.myapplication.MainAbility",
// 使用者自定义的一个私有值 }
requestCode: 0, ],
// 点击通知后,动作执行属性 // 点击通知后,动作类型
wantAgentFlags: [wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG] operationType: wantAgent.OperationType.START_ABILITY,
}; // 使用者自定义的一个私有值
requestCode: 0,
// 通过wantAgent模块的getWantAgent方法获取WantAgent对象 // 点击通知后,动作执行属性
wantAgent.getWantAgent(wantAgentInfo).then((wantAgentObj) => { wantAgentFlags: [wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG]
try { };
backgroundTaskManager.startBackgroundRunning(mContext,
backgroundTaskManager.BackgroundMode.AUDIO_RECORDING, wantAgentObj).then(() => { // 通过wantAgent模块的getWantAgent方法获取WantAgent对象
console.info(`Succeeded in operationing startBackgroundRunning.`); wantAgent.getWantAgent(wantAgentInfo).then((wantAgentObj : WantAgent) => {
}).catch((err) => { backgroundTaskManager.startBackgroundRunning(mContext,
console.error(`Failed to operation startBackgroundRunning. Code is ${err.code}, message is ${err.message}`); backgroundTaskManager.BackgroundMode.AUDIO_RECORDING, wantAgentObj).then(() => {
}); console.info(`Succeeded in operationing startBackgroundRunning.`);
} catch (err) { }).catch((err: BusinessError) => {
console.error(`Failed to operation startBackgroundRunning. Code is ${err.code}, message is ${err.message}`); console.error(`Failed to operation startBackgroundRunning. Code is ${err.code}, message is ${err.message}`);
} });
}); });
} }
function stopContinuousTask() { function stopContinuousTask() {
try { backgroundTaskManager.stopBackgroundRunning(mContext).then(() => {
backgroundTaskManager.stopBackgroundRunning(mContext).then(() => { console.info(`Succeeded in operationing stopBackgroundRunning.`);
console.info(`Succeeded in operationing stopBackgroundRunning.`); }).catch((err: BusinessError) => {
}).catch((err) => { console.error(`Failed to operation stopBackgroundRunning. Code is ${err.code}, message is ${err.message}`);
console.error(`Failed to operation stopBackgroundRunning. Code is ${err.code}, message is ${err.message}`); });
}); }
} catch (err) {
console.error(`Failed to operation stopBackgroundRunning. Code is ${err.code}, message is ${err.message}`); class MyParcelable {
} num: number = 0;
} str: String = '';
class MyParcelable { constructor(num: number, string: string) {
num: number = 0; this.num = num;
str: String = ''; this.str = string;
}
constructor(num, string) {
this.num = num; marshalling(messageSequence: rpc.MessageSequence) {
this.str = string; messageSequence.writeInt(this.num);
} messageSequence.writeString(this.str);
return true;
marshalling(messageSequence) { }
messageSequence.writeInt(this.num);
messageSequence.writeString(this.str); unmarshalling(messageSequence: rpc.MessageSequence) {
return true; this.num = messageSequence.readInt();
} this.str = messageSequence.readString();
return true;
unmarshalling(messageSequence) { }
this.num = messageSequence.readInt(); }
this.str = messageSequence.readString();
return true; function sendMsgCallback(data: rpc.MessageSequence) {
} console.info('BgTaskAbility funcCallBack is called ' + data);
} let receivedData = new MyParcelable(0, '');
data.readParcelable(receivedData);
function sendMsgCallback(data) { console.info(`receiveData[${receivedData.num}, ${receivedData.str}]`);
console.info('BgTaskAbility funcCallBack is called ' + data) // 可以根据Caller端发送的序列化数据的str值,执行不同的方法。
let receivedData = new MyParcelable(0, '') if (receivedData.str === 'start_bgtask') {
data.readParcelable(receivedData) startContinuousTask();
console.info(`receiveData[${receivedData.num}, ${receivedData.str}]`) } else if (receivedData.str === 'stop_bgtask') {
// 可以根据Caller端发送的序列化数据的str值,执行不同的方法。 stopContinuousTask();
if (receivedData.str === 'start_bgtask') { }
startContinuousTask() return new MyParcelable(10, 'Callee test');
} else if (receivedData.str === 'stop_bgtask') { }
stopContinuousTask();
} export default class BgTaskAbility extends UIAbility {
return new MyParcelable(10, 'Callee test'); onCreate(want: Want, launchParam: AbilityConstant.LaunchParam) {
} console.info("[Demo] BgTaskAbility onCreate");
this.callee.on('test', sendMsgCallback);
export default class BgTaskAbility extends UIAbility {
onCreate(want, launchParam) { try {
console.info("[Demo] BgTaskAbility onCreate") this.callee.on(MSG_SEND_METHOD, sendMsgCallback)
this.callee.on('test', sendMsgCallback); } catch (error) {
console.error(`${MSG_SEND_METHOD} register failed with error ${JSON.stringify(error)}`);
try { }
this.callee.on(MSG_SEND_METHOD, sendMsgCallback) mContext = this.context;
} catch (error) { }
console.error(`${MSG_SEND_METHOD} register failed with error ${JSON.stringify(error)}`)
} onDestroy() {
mContext = this.context; console.info('[Demo] BgTaskAbility onDestroy');
} }
onDestroy() { onWindowStageCreate(windowStage: window.WindowStage) {
console.info('[Demo] BgTaskAbility onDestroy') console.info('[Demo] BgTaskAbility onWindowStageCreate');
}
windowStage.loadContent('pages/Index', (error, data) => {
onWindowStageCreate(windowStage) { if (error.code) {
console.info('[Demo] BgTaskAbility onWindowStageCreate') console.error(`load content failed with error ${JSON.stringify(error)}`);
return;
windowStage.loadContent("pages/index").then((data) => { }
console.info(`load content succeed with data ${JSON.stringify(data)}`) console.info(`load content succeed with data ${JSON.stringify(data)}`);
}).catch((error) => { });
console.error(`load content failed with error ${JSON.stringify(error)}`) }
})
} onWindowStageDestroy() {
console.info('[Demo] BgTaskAbility onWindowStageDestroy');
onWindowStageDestroy() { }
console.info('[Demo] BgTaskAbility onWindowStageDestroy')
} onForeground() {
console.info('[Demo] BgTaskAbility onForeground');
onForeground() { }
console.info('[Demo] BgTaskAbility onForeground')
} onBackground() {
console.info('[Demo] BgTaskAbility onBackground');
onBackground() { }
console.info('[Demo] BgTaskAbility onBackground') };
}
};
``` ```
...@@ -355,119 +346,112 @@ ...@@ -355,119 +346,112 @@
3. 导入模块。 3. 导入模块。
```js ```js
import backgroundTaskManager from '@ohos.resourceschedule.backgroundTaskManager'; import backgroundTaskManager from '@ohos.resourceschedule.backgroundTaskManager';
import featureAbility from '@ohos.ability.featureAbility'; import featureAbility from '@ohos.ability.featureAbility';
import wantAgent from '@ohos.app.ability.wantAgent'; import wantAgent, { WantAgent } from '@ohos.app.ability.wantAgent';
import rpc from "@ohos.rpc"; import rpc from "@ohos.rpc";
import { BusinessError } from '@ohos.base';
``` ```
4. 申请和取消长时任务。在 ServiceAbility 中,调用 startBackgroundRunning() 接口和 startBackgroundRunning() 接口实现长时任务的申请和取消。 4. 申请和取消长时任务。在 ServiceAbility 中,调用 startBackgroundRunning() 接口和 startBackgroundRunning() 接口实现长时任务的申请和取消。
```js ```js
function startContinuousTask() { function startContinuousTask() {
let wantAgentInfo = { let wantAgentInfo: wantAgent.WantAgentInfo = {
// 点击通知后,将要执行的动作列表 // 点击通知后,将要执行的动作列表
wants: [ wants: [
{ {
bundleName: "com.example.myapplication", bundleName: "com.example.myapplication",
abilityName: "com.example.myapplication.MainAbility" abilityName: "com.example.myapplication.MainAbility"
} }
], ],
// 点击通知后,动作类型 // 点击通知后,动作类型
operationType: wantAgent.OperationType.START_ABILITY, operationType: wantAgent.OperationType.START_ABILITY,
// 使用者自定义的一个私有值 // 使用者自定义的一个私有值
requestCode: 0, requestCode: 0,
// 点击通知后,动作执行属性 // 点击通知后,动作执行属性
wantAgentFlags: [wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG] wantAgentFlags: [wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG]
}; };
// 通过wantAgent模块的getWantAgent方法获取WantAgent对象 // 通过wantAgent模块的getWantAgent方法获取WantAgent对象
wantAgent.getWantAgent(wantAgentInfo).then((wantAgentObj) => { wantAgent.getWantAgent(wantAgentInfo).then((wantAgentObj: WantAgent) => {
try { backgroundTaskManager.startBackgroundRunning(featureAbility.getContext(),
backgroundTaskManager.startBackgroundRunning(featureAbility.getContext(), backgroundTaskManager.BackgroundMode.AUDIO_RECORDING, wantAgentObj).then(() => {
backgroundTaskManager.BackgroundMode.AUDIO_RECORDING, wantAgentObj).then(() => { console.info(`Succeeded in operationing startBackgroundRunning.`);
console.info(`Succeeded in operationing startBackgroundRunning.`); }).catch((err: BusinessError) => {
}).catch((err) => { console.error(`Failed to operation startBackgroundRunning. Code is ${err.code}, message is ${err.message}`);
console.error(`Failed to operation startBackgroundRunning. Code is ${err.code}, message is ${err.message}`); });
}); });
} catch (error) { }
console.error(`Failed to operation startBackgroundRunning. Code is ${err.code}, message is ${err.message}`);
} function stopContinuousTask() {
}); backgroundTaskManager.stopBackgroundRunning(featureAbility.getContext()).then(() => {
} console.info(`Succeeded in operationing stopBackgroundRunning.`);
}).catch((err: BusinessError) => {
function stopContinuousTask() { console.error(`Failed to operation stopBackgroundRunning. Code is ${err.code}, message is ${err.message}`);
try { });
backgroundTaskManager.stopBackgroundRunning(featureAbility.getContext()).then(() => { }
console.info(`Succeeded in operationing stopBackgroundRunning.`);
}).catch((err) => { async function processAsyncJobs() {
console.error(`Failed to operation stopBackgroundRunning. Code is ${err.code}, message is ${err.message}`); // 此处执行具体的长时任务。
});
} catch (error) { // 长时任务执行完,调用取消接口,释放资源。
console.error(`Failed to operation stopBackgroundRunning. Code is ${err.code}, message is ${err.message}`); stopContinuousTask();
} }
}
let mMyStub: MyStub;
async function processAsyncJobs() {
// 此处执行具体的长时任务。 class MyStub extends rpc.RemoteObject {
constructor(des) {
// 长时任务执行完,调用取消接口,释放资源。 if (typeof des === 'string') {
stopContinuousTask(); super(des);
} } else {
return null;
let mMyStub; }
}
class MyStub extends rpc.RemoteObject {
constructor(des) { onRemoteRequest(code, data, reply, option) {
if (typeof des === 'string') { console.log('ServiceAbility onRemoteRequest called');
super(des); // code 的具体含义用户自定义
} else { if (code === 1) {
return null; // 接收到申请长时任务的请求码
} startContinuousTask();
} // 此处执行具体长时任务
} else if (code === 2) {
onRemoteRequest(code, data, reply, option) { // 接收到取消长时任务的请求码
console.log('ServiceAbility onRemoteRequest called'); stopContinuousTask();
// code 的具体含义用户自定义 } else {
if (code === 1) { console.log('ServiceAbility unknown request code');
// 接收到申请长时任务的请求码 }
startContinuousTask(); return true;
// 此处执行具体长时任务 }
} else if (code === 2) { }
// 接收到取消长时任务的请求码
stopContinuousTask(); export default {
} else { onStart(want) {
console.log('ServiceAbility unknown request code'); console.info('ServiceAbility onStart');
} mMyStub = new MyStub("ServiceAbility-test");
return true; // 在执行长时任务前,调用申请接口。
} startContinuousTask();
} processAsyncJobs();
},
export default { onStop() {
onStart(want) { console.info('ServiceAbility onStop');
console.info('ServiceAbility onStart'); },
mMyStub = new MyStub("ServiceAbility-test"); onConnect(want) {
// 在执行长时任务前,调用申请接口。 console.info('ServiceAbility onConnect');
startContinuousTask(); return mMyStub;
processAsyncJobs(); },
}, onReconnect(want) {
onStop() { console.info('ServiceAbility onReconnect');
console.info('ServiceAbility onStop'); },
}, onDisconnect() {
onConnect(want) { console.info('ServiceAbility onDisconnect');
console.info('ServiceAbility onConnect'); },
return mMyStub; onCommand(want, restart, startId) {
}, console.info('ServiceAbility onCommand');
onReconnect(want) { }
console.info('ServiceAbility onReconnect'); };
},
onDisconnect() {
console.info('ServiceAbility onDisconnect');
},
onCommand(want, restart, startId) {
console.info('ServiceAbility onCommand');
}
};
``` ```
......
...@@ -121,6 +121,7 @@ WorkInfo参数用于设置应用条件,参数设置时需遵循以下规则: ...@@ -121,6 +121,7 @@ WorkInfo参数用于设置应用条件,参数设置时需遵循以下规则:
```ts ```ts
import WorkSchedulerExtensionAbility from '@ohos.WorkSchedulerExtensionAbility'; import WorkSchedulerExtensionAbility from '@ohos.WorkSchedulerExtensionAbility';
import workScheduler fron '@ohos.resourceschedule.workScheduler';
``` ```
3. 实现WorkSchedulerExtension生命周期接口。 3. 实现WorkSchedulerExtension生命周期接口。
...@@ -128,12 +129,12 @@ WorkInfo参数用于设置应用条件,参数设置时需遵循以下规则: ...@@ -128,12 +129,12 @@ WorkInfo参数用于设置应用条件,参数设置时需遵循以下规则:
```ts ```ts
export default class MyWorkSchedulerExtensionAbility extends WorkSchedulerExtensionAbility { export default class MyWorkSchedulerExtensionAbility extends WorkSchedulerExtensionAbility {
// 延迟任务开始回调 // 延迟任务开始回调
onWorkStart(workInfo) { onWorkStart(workInfo: workScheduler.WorkInfo) {
console.info(`onWorkStart, workInfo = ${JSON.stringify(workInfo)}`); console.info(`onWorkStart, workInfo = ${JSON.stringify(workInfo)}`);
} }
// 延迟任务结束回调 // 延迟任务结束回调
onWorkStop(workInfo) { onWorkStop(workInfo: workScheduler.WorkInfo) {
console.info(`onWorkStop, workInfo is ${JSON.stringify(workInfo)}`); console.info(`onWorkStop, workInfo is ${JSON.stringify(workInfo)}`);
} }
} }
...@@ -151,7 +152,7 @@ WorkInfo参数用于设置应用条件,参数设置时需遵循以下规则: ...@@ -151,7 +152,7 @@ WorkInfo参数用于设置应用条件,参数设置时需遵循以下规则:
"extensionAbilities": [ "extensionAbilities": [
{ {
"name": "MyWorkSchedulerExtensionAbility", "name": "MyWorkSchedulerExtensionAbility",
"srcEntry": "./ets/WorkSchedulerExtension/WorkSchedulerExtension.ts", "srcEntry": "./ets/WorkSchedulerExtension/WorkSchedulerExtension.ets",
"label": "$string:WorkSchedulerExtensionAbility_label", "label": "$string:WorkSchedulerExtensionAbility_label",
"description": "$string:WorkSchedulerExtensionAbility_desc", "description": "$string:WorkSchedulerExtensionAbility_desc",
"type": "workScheduler" "type": "workScheduler"
...@@ -173,7 +174,7 @@ WorkInfo参数用于设置应用条件,参数设置时需遵循以下规则: ...@@ -173,7 +174,7 @@ WorkInfo参数用于设置应用条件,参数设置时需遵循以下规则:
2. 申请延迟任务。 2. 申请延迟任务。
```ts ```ts
private workInfo = { private workInfo: workScheduler.WorkInfo = {
workId: 1, workId: 1,
networkType: workScheduler.NetworkType.NETWORK_TYPE_WIFI, networkType: workScheduler.NetworkType.NETWORK_TYPE_WIFI,
bundleName: 'com.example.application', bundleName: 'com.example.application',
...@@ -183,7 +184,7 @@ WorkInfo参数用于设置应用条件,参数设置时需遵循以下规则: ...@@ -183,7 +184,7 @@ WorkInfo参数用于设置应用条件,参数设置时需遵循以下规则:
try { try {
workScheduler.startWork(this.workInfo); workScheduler.startWork(this.workInfo);
console.info(`startWork success`); console.info(`startWork success`);
} catch (error) { } catch (error: BusinessError) {
console.error(`startWork failed. code is ${error.code} message is ${error.message}`); console.error(`startWork failed. code is ${error.code} message is ${error.message}`);
} }
``` ```
...@@ -191,7 +192,7 @@ WorkInfo参数用于设置应用条件,参数设置时需遵循以下规则: ...@@ -191,7 +192,7 @@ WorkInfo参数用于设置应用条件,参数设置时需遵循以下规则:
3. 取消延迟任务。 3. 取消延迟任务。
```ts ```ts
private workInfo = { private workInfo: workScheduler.workInfo = {
workId: 1, workId: 1,
networkType: workScheduler.NetworkType.NETWORK_TYPE_WIFI, networkType: workScheduler.NetworkType.NETWORK_TYPE_WIFI,
bundleName: 'com.example.application', bundleName: 'com.example.application',
...@@ -201,7 +202,7 @@ WorkInfo参数用于设置应用条件,参数设置时需遵循以下规则: ...@@ -201,7 +202,7 @@ WorkInfo参数用于设置应用条件,参数设置时需遵循以下规则:
try { try {
workScheduler.stopWork(this.workInfo); workScheduler.stopWork(this.workInfo);
console.info(`stopWork success`); console.info(`stopWork success`);
} catch (error) { } catch (error: BusinessError) {
console.error(`stopWork failed. code is ${error.code} message is ${error.message}`); console.error(`stopWork failed. code is ${error.code} message is ${error.message}`);
} }
``` ```
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册