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://www.cnblogs.com/zhaloe/p/18909174
© 版权声明
本站所有资源来自于网络,仅供学习与参考,请勿用于商业用途,否则产生的一切后果将由您(转载者)自己承担!
如有侵犯您的版权,请及时联系3500663466#qq.com(#换@),我们将第一时间删除本站数据。
如有侵犯您的版权,请及时联系3500663466#qq.com(#换@),我们将第一时间删除本站数据。
THE END
暂无评论内容