写点什么

ArkUI-X 中 Plugin 生命周期开发指南

作者:龙儿筝
  • 2025-06-03
    湖北
  • 本文字数:1656 字

    阅读完需:约 5 分钟

ArkUI-X 插件用于拓展 ArkUI 应用的能力,提供管理插件生命周期的能力。本文主要介绍 Android 平台的 ArkUI-X 插件生命周期的使用。

Android 平台创建 ArkUI-X 插件生命周期

在 Android 平台创建 ArkUI-X 插件生命周期需要实现 IArkUIXPlugin 接口。


// PluginTest.javaimport ohos.ace.adapter.IArkUIXPlugin;import ohos.ace.adapter.PluginContext;import ohos.ace.adapter.capability.bridge.BridgePlugin;
public class PluginTest implements IArkUIXPlugin { public Bridge myBridge = null; @Override public void onRegistry(PluginContext pluginContext) { // 创建插件以及插件初始化 myBridge = new MyBridge(pluginContext.getContext(), "MyTestBridge", pluginContext.getBridgeManager()); } @Override public void onUnRegistry(PluginContext pluginContext) { // 释放插件资源 if (myBridge != null) { myBridge = null; } }}
复制代码

添加 ArkUI-X 插件

在 StageActivity 中,新增 addPlugin11+方法,并以字符串形式提供 IArkUIXPlugin 的实现类的完整包名,用于将开发者实现 IArkUIXPlugin 接口的对象添加到 StageActivity 中。addPlugin 方法声明如下:


class StageActivity extents Activity implements KeyboardHeightObserver {    // add ArkUI-X plugin to list for registry.    // 参数:pluginName: 实现插件的完整包名    public void addPlugin(String pluginName); }
复制代码


在 StageActivity 的 onCreate()中触发 onRegistry()方法,通知开发者创建插件;在 StageActivity 的 onDestroy()中触发 onUnRegistry()方法,通知开发者销毁插件。


注意:开发者调用 addPlugin()方法,必须位于调用超类的 onCreate()方法之前,如下:


// EntryEntryAbilityActivity,javaimport android.os.Bundle;import ohos.stage.ability.adapter.StageActivity;
public class EntryEntryAbilityActivity extends StageActivity { @Override public void onCreate(Bundle savedInstanceState) { // 必须在super.onCreate()之前添加,因为在超类的onCreate()中要调用addPlugin()添加的对象 addPlugin("com.example.pluginlifecycle.PluginTest"); setInstanceName("com.example.pluginlifecycle:entry:EntryAbility:");
super.onCreate(savedInstanceState); }}
复制代码

示例

Bridge 相关具体参考


// PluginTest.javaimport ohos.ace.adapter.IArkUIXPlugin;import ohos.ace.adapter.PluginContext;import ohos.ace.adapter.capability.bridge.BridgePlugin;
public class PluginTest implements IArkUIXPlugin { public Bridge myBridge = null; // 在 EntryEntryAbilityActivity 的 onCreate 时被触发 @Override public void onRegistry(PluginContext pluginContext) { // 创建插件以及插件初始化 myBridge = new MyBridge(pluginContext.getContext(), "MyTestBridge", pluginContext.getBridgeManager()); } // 在EntryEntryAbilityActivity 的 onDestroy 时被触发 @Override public void onUnRegistry(PluginContext pluginContext) { // 释放插件资源 if (myBridge != null) { myBridge = null; } }}
复制代码


注册插件示例如下:


// EntryEntryAbilityActivity,javaimport android.os.Bundle;import ohos.stage.ability.adapter.StageActivity;
public class EntryEntryAbilityActivity extends StageActivity { @Override public void onCreate(Bundle savedInstanceState) { addPlugin("com.example.pluginlifecycle.PluginTest"); setInstanceName("com.example.pluginlifecycle:entry:EntryAbility:"); super.onCreate(savedInstanceState); }}
复制代码


发布于: 刚刚阅读数: 5
用户头像

龙儿筝

关注

还未添加个人签名 2024-10-27 加入

还未添加个人简介

评论

发布
暂无评论
ArkUI-X中Plugin生命周期开发指南_龙儿筝_InfoQ写作社区