在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

鴻蒙開發接口Ability框架:【@ohos.application.Ability (Ability)】

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-04-30 17:42 ? 次閱讀

Ability

Ability模塊提供對Ability生命周期、上下文環境等調用管理的能力,包括Ability創建、銷毀、轉儲客戶端信息等。

該模塊提供以下Ability相關的常用功能:

  • [Caller]:通用組件Caller通信客戶端調用接口, 用來向通用組件服務端發送約定數據。
  • [Callee]:通用組件服務端注冊和解除客戶端caller通知送信的callback接口。

說明:

本模塊首批接口從API version 9 開始支持。后續版本的新增接口,采用上角標單獨標記接口的起始版本。
本模塊接口僅可在Stage模型下使用。

導入模塊

import Ability from '@ohos.application.Ability';

鴻蒙開發指導文檔:[qr23.cn/FBD4cY]

屬性

系統能力 :以下各項對應的系統能力均為SystemCapability.Ability.AbilityRuntime.AbilityCore

名稱參數類型可讀可寫說明
context[AbilityContext]上下文。
launchWant[Want]Ability啟動時的參數。
lastRequestWant[Want]Ability最后請求時的參數。
callee[Callee]調用Stub(樁)服務對象。

Ability.onCreate

onCreate(want: Want, param: AbilityConstant.LaunchParam): void;

Ability創建時回調,執行初始化業務邏輯操作。

系統能力 :SystemCapability.Ability.AbilityRuntime.AbilityCore

參數:

參數名類型必填說明
want[Want]當前Ability的Want類型信息,包括ability名稱、bundle名稱等。
paramAbilityConstant.LaunchParam創建 ability、上次異常退出的原因信息。

示例:

class myAbility extends Ability {
    onCreate(want, param) {
        console.log('onCreate, want:' + want.abilityName);
    }
}

Ability.onWindowStageCreate

onWindowStageCreate(windowStage: window.WindowStage): void

當WindowStage創建后調用。

系統能力 :SystemCapability.Ability.AbilityRuntime.AbilityCore

參數:

參數名類型必填說明
windowStagewindow.WindowStageWindowStage相關信息。

示例:

class myAbility extends Ability {
    onWindowStageCreate(windowStage) {
        console.log('onWindowStageCreate');
    }
}

Ability.onWindowStageDestroy

onWindowStageDestroy(): void

當WindowStage銷毀后調用。

系統能力 :SystemCapability.Ability.AbilityRuntime.AbilityCore

示例:

class myAbility extends Ability {
    onWindowStageDestroy() {
        console.log('onWindowStageDestroy');
    }
}

Ability.onWindowStageRestore

onWindowStageRestore(windowStage: window.WindowStage): void

當遷移多實例ability時,恢復WindowStage后調用。

系統能力 :SystemCapability.Ability.AbilityRuntime.AbilityCore

參數:

參數名類型必填說明
windowStagewindow.WindowStageWindowStage相關信息。

示例:

class myAbility extends Ability {
    onWindowStageRestore(windowStage) {
        console.log('onWindowStageRestore');
    }
}

Ability.onDestroy

onDestroy(): void;

Ability生命周期回調,在銷毀時回調,執行資源清理等操作。

系統能力 :SystemCapability.Ability.AbilityRuntime.AbilityCore

示例:

class myAbility extends Ability {
    onDestroy() {
        console.log('onDestroy');
    }
}

Ability.onForeground

onForeground(): void;

Ability生命周期回調,當應用從后臺轉到前臺時觸發。

系統能力 :SystemCapability.Ability.AbilityRuntime.AbilityCore

示例:

class myAbility extends Ability {
    onForeground() {
        console.log('onForeground');
    }
}

Ability.onBackground

onBackground(): void;

Ability生命周期回調,當應用從前臺轉到后臺時觸發。

系統能力 :SystemCapability.Ability.AbilityRuntime.AbilityCore

示例:

class myAbility extends Ability {
    onBackground() {
        console.log('onBackground');
    }
}

Ability.onContinue

onContinue(wantParam : {[key: string]: any}): AbilityConstant.OnContinueResult;

當ability遷移準備遷移時觸發,保存數據。

系統能力 :SystemCapability.Ability.AbilityRuntime.AbilityCore

參數:

參數名類型必填說明
wantParam{[key: string]: any}want相關參數。

返回值:

類型說明
AbilityConstant.OnContinueResult繼續的結果。

示例:

import AbilityConstant from "@ohos.application.AbilityConstant"
class myAbility extends Ability {
    onContinue(wantParams) {
        console.log('onContinue');
        wantParams["myData"] = "my1234567";
        return AbilityConstant.OnContinueResult.AGREE;
    }
}

Ability.onNewWant

onNewWant(want: Want): void;

當ability的啟動模式設置為單例時回調會被調用。

系統能力 :SystemCapability.Ability.AbilityRuntime.AbilityCore

參數:

參數名類型必填說明
want[Want]Want類型參數,如ability名稱,包名等。

示例:

class myAbility extends Ability {
    onNewWant(want) {
        console.log('onNewWant, want:' + want.abilityName);
    }
}

Ability.onConfigurationUpdated

onConfigurationUpdated(config: Configuration): void;

當系統配置更新時調用。

系統能力 :SystemCapability.Ability.AbilityRuntime.AbilityCore

參數:

參數名類型必填說明
config[Configuration]表示需要更新的配置信息。

示例:

class myAbility extends Ability {
    onConfigurationUpdated(config) {
        console.log('onConfigurationUpdated, config:' + JSON.stringify(config));
    }
}

Ability.dump

dump(params: Array): Array;

轉儲客戶端信息時調用。

系統能力 :SystemCapability.Ability.AbilityRuntime.AbilityCore

參數:

參數名類型必填說明
paramsArray表示命令形式的參數。

示例:

class myAbility extends Ability {
    dump(params) {
        console.log('dump, params:' + JSON.stringify(params));
        return ["params"]
    }
}

Caller

通用組件Caller通信客戶端調用接口, 用來向通用組件服務端發送約定數據。

Caller.call

call(method: string, data: rpc.Sequenceable): Promise;

向通用組件服務端發送約定序列化數據。

系統能力 :SystemCapability.Ability.AbilityRuntime.AbilityCore

參數:

參數名類型必填說明
methodstring約定的服務端注冊事件字符串。
datarpc.Sequenceable開發者實現的Sequenceable可序列化數據。

返回值:

類型說明
PromisePromise形式返回應答。

示例:

import Ability from '@ohos.application.Ability';
class MyMessageAble{ // 自定義的Sequenceable數據結構
    name:""
    str:""
    num: 1
    constructor(name, str) {
      this.name = name;
      this.str = str;
    }
    marshalling(messageParcel) {
        messageParcel.writeInt(this.num);
        messageParcel.writeString(this.str);
        console.log('MyMessageAble marshalling num[' + this.num + '] str[' + this.str + ']');
        return true;
    }
    unmarshalling(messageParcel) {
        this.num = messageParcel.readInt();
        this.str = messageParcel.readString();
        console.log('MyMessageAble unmarshalling num[' + this.num + '] str[' + this.str + ']');
        return true;
    }
};
var method = 'call_Function'; // 約定的通知消息字符串
var caller;
export default class MainAbility extends Ability {
    onWindowStageCreate(windowStage) {
      this.context.startAbilityByCall({
          bundleName: "com.example.myservice",
          abilityName: "MainAbility",
          deviceId: ""
      }).then((obj) = > {
          caller = obj;
          let msg = new MyMessageAble(1, "world"); // 參考Sequenceable數據定義
          caller.call(method, msg)
              .then(() = > {
                  console.log('Caller call() called');
              }).catch((e) = > {
              console.log('Caller call() catch error ' + e);
          });
          console.log('Caller GetCaller Get ' + caller);
      }).catch((e) = > {
          console.log('Caller GetCaller error ' + e);
      });
    }
    
}

Caller.callWithResult

callWithResult(method: string, data: rpc.Sequenceable): Promise;

向通用組件服務端發送約定序列化數據, 并將服務端返回的約定序列化數據帶回。

系統能力 :SystemCapability.Ability.AbilityRuntime.AbilityCore

參數:

參數名類型必填說明
methodstring約定的服務端注冊事件字符串。
datarpc.Sequenceable由開發者實現的Sequenceable可序列化數據。

返回值:

類型說明
PromisePromise形式返回通用組件服務端應答數據。

示例:

import Ability from '@ohos.application.Ability';
class MyMessageAble{
    name:""
    str:""
    num: 1
    constructor(name, str) {
      this.name = name;
      this.str = str;
    }
    marshalling(messageParcel) {
        messageParcel.writeInt(this.num);
        messageParcel.writeString(this.str);
        console.log('MyMessageAble marshalling num[' + this.num + '] str[' + this.str + ']');
        return true;
    }
    unmarshalling(messageParcel) {
        this.num = messageParcel.readInt();
        this.str = messageParcel.readString();
        console.log('MyMessageAble unmarshalling num[' + this.num + '] str[' + this.str + ']');
        return true;
    }
};
var method = 'call_Function';
var caller;
export default class MainAbility extends Ability {
    onWindowStageCreate(windowStage) {
      this.context.startAbilityByCall({
          bundleName: "com.example.myservice",
          abilityName: "MainAbility",
          deviceId: ""
      }).then((obj) = > {
          caller = obj;
          let msg = new MyMessageAble(1, "world");
          caller.callWithResult(method, msg)
              .then((data) = > {
                  console.log('Caller callWithResult() called');
                  let retmsg = new MyMessageAble(0, "");
                  data.readSequenceable(retmsg);
              }).catch((e) = > {
              console.log('Caller callWithResult() catch error ' + e);
          });
          console.log('Caller GetCaller Get ' + caller);
      }).catch((e) = > {
          console.log('Caller GetCaller error ' + e);
      });
    }
}

Caller.release

release(): void;

主動釋放通用組件服務端的通信接口。

系統能力 :SystemCapability.Ability.AbilityRuntime.AbilityCore

示例:

import Ability from '@ohos.application.Ability';
var caller;
export default class MainAbility extends Ability {
    onWindowStageCreate(windowStage) {
      this.context.startAbilityByCall({
          bundleName: "com.example.myservice",
          abilityName: "MainAbility",
          deviceId: ""
      }).then((obj) = > {
          caller = obj;
          try {
              caller.release();
          } catch (e) {
              console.log('Caller Release error ' + e);
          }
          console.log('Caller GetCaller Get ' + caller);
      }).catch((e) = > {
          console.log('Caller GetCaller error ' + e);
      });
    }
}

Caller.onRelease

onRelease(callback: OnReleaseCallBack): void;

注冊通用組件服務端Stub(樁)斷開監聽通知。

系統能力 :SystemCapability.Ability.AbilityRuntime.AbilityCore

參數:

參數名類型必填說明
callbackOnReleaseCallBack返回onRelease回調結果。

示例:

import Ability from '@ohos.application.Ability';
var caller;
export default class MainAbility extends Ability {
    onWindowStageCreate(windowStage) {
      this.context.startAbilityByCall({
          bundleName: "com.example.myservice",
          abilityName: "MainAbility",
          deviceId: ""
      }).then((obj) = > {
          caller = obj;
          try {
              caller.onRelease((str) = > {
                  console.log(' Caller OnRelease CallBack is called ' + str);
              });
          } catch (e) {
              console.log('Caller Release error ' + e);
          }
          console.log('Caller GetCaller Get ' + caller);
      }).catch((e) = > {
          console.log('Caller GetCaller error ' + e);
      });
    }
}

Callee

通用組件服務端注冊和解除客戶端caller通知送信的callback接口。

Callee.on

on(method: string, callback: CaleeCallBack): void;

通用組件服務端注冊消息通知callback。

系統能力 :SystemCapability.Ability.AbilityRuntime.AbilityCore

參數:

參數名類型必填說明
methodstring與客戶端約定的通知消息字符串。
callbackCaleeCallBack一個rpc.MessageParcel類型入參的js通知同步回調函數, 回調函數至少要返回一個空的rpc.Sequenceable數據對象, 其他視為函數執行錯誤。

示例:

import Ability from '@ohos.application.Ability';
class MyMessageAble{
    name:""
    str:""
    num: 1
    constructor(name, str) {
      this.name = name;
      this.str = str;
    }
    marshalling(messageParcel) {
        messageParcel.writeInt(this.num);
        messageParcel.writeString(this.str);
        console.log('MyMessageAble marshalling num[' + this.num + '] str[' + this.str + ']');
        return true;
    }
    unmarshalling(messageParcel) {
        this.num = messageParcel.readInt();
        this.str = messageParcel.readString();
        console.log('MyMessageAble unmarshalling num[' + this.num + '] str[' + this.str + ']');
        return true;
    }
};
var method = 'call_Function';
function funcCallBack(pdata) {
    console.log('Callee funcCallBack is called ' + pdata);
    let msg = new MyMessageAble(0, "");
    pdata.readSequenceable(msg);
    return new MyMessageAble(10, "Callee test");
}
export default class MainAbility extends Ability {
    onCreate(want, launchParam) {
        console.log('Callee onCreate is called');
        this.callee.on(method, funcCallBack);
    }
}

Callee.off

off(method: string): void;

解除通用組件服務端注冊消息通知callback。

系統能力 :SystemCapability.Ability.AbilityRuntime.AbilityCore

參數:

參數名類型必填說明
methodstring已注冊的通知事件字符串。

示例:

import Ability from '@ohos.application.Ability';
var method = 'call_Function';
export default class MainAbility extends Ability {
    onCreate(want, launchParam) {
        console.log('Callee onCreate is called');
        this.callee.off(method);
    }
}

OnReleaseCallBack

(msg: string): void;

系統能力 :SystemCapability.Ability.AbilityRuntime.AbilityCore

名稱參數類型可讀可寫說明
(msg: string)function調用者注冊的偵聽器函數接口的原型。

搜狗高速瀏覽器截圖20240326151450.png

CaleeCallBack

(indata: rpc.MessageParcel): rpc.Sequenceable;

系統能力 :SystemCapability.Ability.AbilityRuntime.AbilityCore

名稱參數類型可讀可寫說明
(indata: rpc.MessageParcel)rpc.Sequenceable被調用方注冊的消息偵聽器函數接口的原型。

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 接口
    +關注

    關注

    33

    文章

    8712

    瀏覽量

    152014
  • 框架
    +關注

    關注

    0

    文章

    403

    瀏覽量

    17554
  • 鴻蒙
    +關注

    關注

    57

    文章

    2395

    瀏覽量

    43091
收藏 人收藏

    評論

    相關推薦

    鴻蒙開發接口Ability框架:【@ohos.ability.featureAbility (FeatureAbility模塊)】

    FeatureAbility模塊提供帶有UI設計與用戶交互的能力,包括啟動新的ability、獲取dataAbilityHelper、設置此Page Ability、獲取當前Ability對應的窗口,連接服務等。
    的頭像 發表于 05-06 16:31 ?1075次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b><b class='flag-5'>接口</b><b class='flag-5'>Ability</b><b class='flag-5'>框架</b>:【@<b class='flag-5'>ohos.ability</b>.featureAbility (FeatureAbility模塊)】

    鴻蒙開發接口Ability框架:【@ohos.application.missionManager (missionManager)】

    表示Ability對應任務信息的枚舉。
    的頭像 發表于 05-08 09:19 ?951次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b><b class='flag-5'>接口</b><b class='flag-5'>Ability</b><b class='flag-5'>框架</b>:【@<b class='flag-5'>ohos.application</b>.missionManager (missionManager)】

    鴻蒙開發接口Ability框架:【@ohos.ability.particleAbility (particleAbility模塊)】

    particleAbility模塊提供了Service類型Ability的能力,包括啟動、停止指定的particleAbility,獲取dataAbilityHelper,連接、斷開當前Ability與指定ServiceAbility等。
    的頭像 發表于 05-09 10:21 ?769次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b><b class='flag-5'>接口</b><b class='flag-5'>Ability</b><b class='flag-5'>框架</b>:【@<b class='flag-5'>ohos.ability</b>.particleAbility (particleAbility模塊)】

    鴻蒙開發接口Ability框架:【 (Context模塊)】

    Context模塊提供了abilityapplication的上下文的能力,包括允許訪問特定于應用程序的資源、請求和驗證權限等。
    的頭像 發表于 05-13 16:04 ?778次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b><b class='flag-5'>接口</b><b class='flag-5'>Ability</b><b class='flag-5'>框架</b>:【 (Context模塊)】

    鴻蒙開發接口Ability框架:【(AbilityContext)】

    AbilityContext是Ability的上下文環境,繼承自Context。
    的頭像 發表于 05-13 09:26 ?1080次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b><b class='flag-5'>接口</b><b class='flag-5'>Ability</b><b class='flag-5'>框架</b>:【(AbilityContext)】

    鴻蒙開發接口Ability框架:【(AbilityDelegator)】

    AbilityDelegator提供添加用于監視指定能力的生命周期狀態更改的AbilityMonitor對象的能力,包括對AbilityMonitor實例的添加、刪除、等待ability到達
    的頭像 發表于 05-13 17:58 ?1008次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b><b class='flag-5'>接口</b><b class='flag-5'>Ability</b><b class='flag-5'>框架</b>:【(AbilityDelegator)】

    鴻蒙開發接口Ability框架:【AbilityRunningInfo】

    AbilityRunningInfo模塊提供對Ability運行的相關信息和狀態進行設置和查詢的能力。
    的頭像 發表于 05-14 16:02 ?846次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b><b class='flag-5'>接口</b><b class='flag-5'>Ability</b><b class='flag-5'>框架</b>:【AbilityRunningInfo】

    鴻蒙開發接口Ability框架:【AbilityDelegator】

    AbilityDelegator提供添加用于監視指定能力的生命周期狀態更改的AbilityMonitor對象的能力,包括對AbilityMonitor實例的添加、刪除、等待ability到達
    的頭像 發表于 05-16 16:48 ?987次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b><b class='flag-5'>接口</b><b class='flag-5'>Ability</b><b class='flag-5'>框架</b>:【AbilityDelegator】

    鴻蒙Ability開發-Stage模型下Ability的創建和使用

    ); hilog.info(ENTRY_ABILITY_DOMAIN, TAG, \'%{public}s\', \'Ability onBackground\'); } } 本文內容是鴻蒙
    發表于 01-08 15:34

    鴻蒙應用模型開發-更新SDK后報錯解決

    變更,可以嘗試替換為新的模塊名(常用接口如下): 原有接口接口 @ohos.application.Ability @ohos.app.abil
    發表于 02-18 17:17

    圖解鴻蒙Page Ability的LaunchType

    com.unitymarvel.demo.ability; import com.unitymarvel.demo.ResourceTable;import ohos.aafwk.ability.Ability;import
    發表于 12-24 09:09

    HarmonyOS應用開發-Page Ability啟動Service Ability

    Page Ablity響應交互,從而調用Service Ability鴻蒙開發中最常用的交互方式,在Page Ablity使用startAbility(intent)啟動Service
    發表于 11-03 10:32

    鴻蒙開發接口Ability框架:【AbilityRunningInfo】

    AbilityRunningInfo模塊提供對Ability運行的相關信息和狀態進行設置和查詢的能力。
    的頭像 發表于 05-17 17:12 ?356次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b><b class='flag-5'>接口</b><b class='flag-5'>Ability</b><b class='flag-5'>框架</b>:【AbilityRunningInfo】

    鴻蒙Ability Kit(程序框架服務)【Ability內頁面間的跳轉】

    基于Stage模型下的Ability開發,實現Ability內頁面間的跳轉和數據傳遞。
    的頭像 發表于 06-03 20:43 ?347次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>Ability</b> Kit(程序<b class='flag-5'>框架</b>服務)【<b class='flag-5'>Ability</b>內頁面間的跳轉】

    鴻蒙Ability Kit(程序框架服務)【Ability與ServiceExtensionAbility通信】

    本示例展示通過[IDL的方式]和?[@ohos.rpc]?等接口實現了Ability與ServiceExtensionAbility之間的通信。
    的頭像 發表于 06-05 09:28 ?546次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>Ability</b> Kit(程序<b class='flag-5'>框架</b>服務)【<b class='flag-5'>Ability</b>與ServiceExtensionAbility通信】
    主站蜘蛛池模板: 色秀视频免费高清网站 | 在线天堂中文新版有限公司 | 三级黄色免费 | 四虎影院wwww | 毛片爱爱 | 午夜在线看片 | 免费亚洲视频在线观看 | 天天噜天天射 | 日本免费黄网站 | 欧美一级日韩在线观看 | 四虎影院新网址 | 精品久久久久国产免费 | 国产色播 | 色惰网站 | 天天综合天天综合色在线 | 男人的天堂免费视频 | 操欧美女人 | 色多多免费视频 | 色黄在线观看 | 欧美色视频在线 | 四虎4hu永久免费国产精品 | 欧美五月激情 | 天堂社区在线观看 | 色猫成人网 | 日本免费www | 永久在线观看www免费视频 | 国产情侣露脸 | 日韩欧美亚洲一区 | 国产色婷婷 | 国产免费人成在线看视频 | 国产农村一级特黄α真人毛片 | 性欧美视频videos6一9 | 国产产一区二区三区久久毛片国语 | 国产精品久久久久久免费播放 | 成人av在线播放 | 美女视频黄a视频美女大全 美女视频一区二区 | 亚洲天堂999| 国产资源在线免费观看 | 欧美城天堂网 | 欧美 亚洲 国产 精品有声 | 国产伦精品一区二区三区女 |