首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

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);

}

}

  • 发表于:
  • 原文链接https://page.om.qq.com/page/ObgQlzHgnr8FQqFRQb_Y2TjQ0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券