轨项尺 发表于 2025-6-3 19:39:17

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

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

在Android平台创建ArkUI-X插件生命周期需要实现IArkUIXPlugin接口。
// PluginTest.java
import 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,java
import 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.java
import 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,java
import 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);
    }
}
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

伯绮梦 发表于 2025-11-28 08:28:04

懂技术并乐意极积无私分享的人越来越少。珍惜

郗新语 发表于 2025-12-20 16:30:05

yyds。多谢分享

焦和玉 发表于 2026-1-7 19:33:34

谢谢分享,试用一下

笃扇 发表于 2026-1-13 12:16:52

很好很强大我过来先占个楼 待编辑

上官银柳 发表于 2026-1-15 20:24:07

感谢分享,下载保存了,貌似很强大

挽幽 发表于 2026-1-18 14:06:04

很好很强大我过来先占个楼 待编辑

梨恐 发表于 2026-1-20 10:44:16

东西不错很实用谢谢分享

战匈琼 发表于 2026-1-20 14:03:58

这个有用。

志灿隐 发表于 2026-1-21 15:30:28

感谢分享,学习下。

石娅凉 发表于 2026-1-25 03:42:22

谢谢楼主提供!

贺蛟亡 发表于 2026-1-26 11:09:18

收藏一下   不知道什么时候能用到

愤血冒 发表于 2026-1-27 11:32:06

谢谢楼主提供!

接快背 发表于 2026-1-31 13:30:19

谢谢分享,辛苦了

格恳绌 发表于 2026-2-2 04:58:40

感谢,下载保存了

浅皮懔 发表于 2026-2-2 04:58:20

东西不错很实用谢谢分享

嘀荼酴 发表于 2026-2-3 09:14:19

收藏一下   不知道什么时候能用到

怒鼓踊 发表于 2026-2-3 19:04:55

谢谢分享,试用一下

揭荸 发表于 2026-2-4 01:58:07

过来提前占个楼

撷监芝 发表于 2026-2-9 16:42:41

用心讨论,共获提升!
页: [1] 2
查看完整版本: ArkUI-X中Plugin生命周期开发指南