作为使用 Page 模板的 Ability 的基本单位 ,AbilitySlice 为服务逻辑和 UI 显示提供了带有载体的功能。
一个能力可以有多个能力切片。您必须重写 Ability#onStart(Intent)方法以指定默认的能力切片。通过使用 Ability#setMainRoute(String)指定此默认路由。
您可以继承 AbilitySlice 类来实现自己的能力切片,并在 onStart(ohos.aafwk.content.Intent)方法中设置其 UI 。可以使用 setUIContent(ohos.agp.components.ComponentContainer)或setUIContent(int)来设置 UI 。通常,在功能切片的整个生命周期中,只需设置一次 UI。示例代码:
public class MyAbilitySlice extends AbilitySlice {
protected void onStart(Intent intent) {
super.onStart(intent);
// setup UI content from a layout resource
setUIContent(R.res.layout);
}
}
您可以使用 present(ohos.aafwk.ability.AbilitySlice,ohos.aafwk.content.Intent)方法来呈现新的能力切片,也可以使用 startAbility(ohos.aafwk.content.Intent)方法来启动新能力。
能力切片必须始终托管在一个能力中,并且其生命周期会随着能力的变化而变化。功能片还具有其独立的生命周期更改,该更改在功能片切换期间发生。
注意:在大多数情况下,您负责创建和维护能力切片实例。但是,系统会在某些情况下创建实例。例如,系统在能力的首次启动期间创建能力切片实例。这要求所有 AbilitySlice 子类都具有默认的无参数构造函数。根据 Java 的定义,仅当您未显式声明参数化构造函数时,编译器才会为该类提供默认的无参数构造函数。因此,在覆盖 AbilitySlice 子类时,如果您的实现具有参数化构造函数,则必须显式声明一个无参数构造函数。
使用页面模板输入能力
您可以指定多个动作条目和一个功能的默认主条目。每个条目代表功能和该功能可以提供的 UI。启动一项功能后,系统会将已转移“ Intent”中的“操作”字段与定义的条目进行匹配。如果找到指定的能力片,则系统将启动它。如果转移未指定的操作字段被Intent在被转让或动作字段Intent不匹配所定义的任何条目,则显示默认能力切片。
以下代码显示了如何将条目设置为能力:
public class MainAbility extends Ability {
public void onStart(Intent intent) {
super.onStart(intent);
// set the main entry
setMainRoute(MainSlice.class.getName());
// add action for ability
addActionRoute("action.pay", PaySlice.class.getName());
addActionRoute("action.scan", ScanSlice.class.getName());
}
}
前面的代码仅定义运行时的入口路由。要将能力的功能暴露给其他能力,必须在配置文件 config.json中 注册操作字段。示例代码:
{
"module":{
...
"abilities":[
{
...
"description": "Main ability of hiworld",
"name": ".MainAbility",
"label": "main ability",
"icon": "main-ability.png",
"type": "page",
"visible": true,
"orientation": "unspecified",
"launch-mode": "standard",
"skills"[
{
"actions":[
"action.pay",
"action.scan"
]
}
]
...
}
]
...
}
}
以上述方式注册受支持的动作后,其他能力可以通过指定动作使用您的能力,并直接打开相应的能力片。示例代码:
Intent intent = new Intent();
Operation operation = new Intent.OperationBuilder()
.withAction("action.pay")
.withDeviceId("")
.withBundleName("xxx")
.withAbilityName("yyy")
.build();
intent.setOperation(operation);
startAbility(intent);
AbilitySlice 生命周期
能力切片的生命周期与承载它的能力有关。功能片具有与宿主功能相同的生命周期状态和生命周期回调方法。异能的生命周期状态一旦更改,其异能切片就会发生相同的变化,并调用相同的回调方法。功能切片也可以具有其独立的生命周期更改。在切换能力中的能力切片期间会发生此独立更改。但是,这样的切换不会影响宿主能力的生命周期。
能力切片具有以下四个生命周期状态:
与功能类似,功能切片提供以下生命周期回调方法。您可以覆盖它们。
public class MainAbilitySlice extends AbilitySlice {
protected void onStart(Intent intent);
protected void onActive();
protected void onInactive();
protected void onForeground(Intent intent);
protected void onBackground();
protected void onStop();
}
下图显示了能力切片的完整生命周期。一个能力切片在任何时候都只能处于一种状态。并非所有州都支持直接过渡。
注意:onStart(ohos.aafwk.content.Intent)方法在整个生命周期中只能调用一次。
下面提供了每种生命周期回调方法的含义以及一些最佳实践建议。
在能力切片之间切换
您可以使用 present(ohos.aafwk.ability.AbilitySlice,ohos.aafwk.content.Intent)方法呈现新的能力切片,并使用Intent传输自定义参数。示例代码:
Button button = new Button(this);
button.setClickedListener(listener -> {
AbilitySlice targetSlice = new MyAbilitySlice();
Intent intent = new Intent();
intent.setParam("value", 10);
present(targetSlice, intent);
});
注意:一个能力中最多可以同时显示 1024 个能力切片。如果尝试显示第 1025 个异能切片,系统将强制使该异能崩溃。为了避免这种情况,如果需要同时显示大量能力切片,则必须改进代码。
从接口 ohos.app 继承的字段。Context |
---|
CONTEXT_IGNORE_SECURITY,CONTEXT_INCLUDE_CODE,<br />CONTEXT_RESOUCE_ONLY,CONTEXT_RESTRICTED,MODE_APPEND,MODE_PRIVATE |
建设者 | 描述 |
---|---|
AbilitySlice() |
修饰符和类型 | 方法 | 描述 |
---|---|---|
布尔值 | acquireAbilityFormAsync(Intent intent,AbilityForm.OnAcquiredCallback acquisitionCallback) | 请求目标能力提供的 AbilityForm 实例。 |
布尔值 | connectAbility(Intent intent,IAbilityConnection conn) | 将主持人能力与使用服务模板的能力联系起来。 |
void | continueAbility() | 将主机功能迁移到同一分布式网络上的另一台设备。 |
void | continueAbility(string deviceId) | 将主机功能迁移到同一分布式网络上的给定设备。 |
void | continueAbilityReversible() | 以可逆的方式将主机功能迁移到同一分布式网络上的另一台设备,该功能允许将该功能通过 reverseContinueAbility()迁移回本地设备。 |
void | continueAbilityReversible(string deviceId) | 以可逆的方式将主机功能迁移到同一分布式网络上的另一台设备,该功能允许将该功能通过reverseContinueAbility()迁移回本地设备。 |
void | 断开连接能力(IAbilityConnection conn) | 将主机功能与使用服务模板的功能断开连接。 |
Component | findComponentById(int resID) | 根据资源 ID 在 XML 文件中查找组件。 |
Ability | getAbility() | 获得该切片所属的能力。 |
ContinuationState | getContinuationState() | 获得宿主能力的迁移状态。 |
WindowManager.LayoutConfig | getLayoutParams() | 获取能力的窗口布局参数。 |
Lifecycle | getLifecycle() | 获取当前能力切片的Lifecycle对象。 |
String | getOriginalDeviceId() | 获取从其迁移主机功能的源设备的 ID。 |
Window | getWindow() | 获取与当前能力对应的窗口。 |
protected void | onAbilityResult(int requestCode,int resultCode,Intent resultData) | 在调用startAbilityForResult(ohos.aafwk.content.Intent,int)以启动功能并返回结果时调用。 |
protected void | onActive() | 回叫时的能力片进入 ACTIVE 状态。 |
protected void | onBackground() | 技能片进入背景状态时回调。 |
protected void | onBackPressed() | 当按下返回键时回叫。 |
protected void | onForeground (Intent intent) | 当能力片的状态从背景变为不活动时回调。 |
protected void | onInactive() | 当功能片进入 INACTIVE 状态时回调。 |
布尔值 | onKeyDown(int keyCode,KeyEvent keyEvent) | 按下键时调用。 |
布尔值 | onKeyUp(int keyCode,KeyEvent keyEvent) | 释放键时调用。 |
protected void | onOrientationChanged(AbilityInfo.DisplayOrientation displayOrientation) | 当屏幕的显示方向改变时回调。 |
protected void | onResult(int requestCode,Intent resultIntent) | 返回presentForResult(ohos.aafwk.ability.AbilitySlice,ohos.aafwk.content.Intent,int)方法的结果时回调。 |
protected void | 在onStart(Intent intent) | 开始功能切片时回调。 |
protected void | onStop() | 在摧毁能力片之前回叫。 |
void | 当前(AbilitySlice targetSlice,Intent intent) | 提供另一个能力切片,可以是尚未开始的能力切片或宿主能力中的现有能力切片。 |
void | presentForResult(AbilitySlice targetSlice,Intent intent,int requestCode) | 呈现另一个能力切片,并通过调用setResult(ohos.aafwk.content.Intent)返回目标能力切片的结果集。 |
void | releaseAbilityForm(AbilityForm能力 表单) | 释放主机能力的指定 AbilityForm 实例。 |
布尔值 | reverseContinueAbility() | 将主机功能从同一分布式网络上的另一台设备迁移回本地设备。 |
void | setDisplayOrientation(AbilityInfo.DisplayOrientation requestedOrientation) | 设置主持人能力的显示方向。 |
void | setIsAmbientMode(boolean isEnabled) | 设置窗口的输入 AOD 模式 |
void | setLayoutParams(WindowManager.LayoutConfig 参数) | 设置功能的窗口布局参数。 |
void | setResult(Intent resultData) | 设置销毁能力切片时要返回的数据。 |
void | setUIContent(int layoutRes) | 通过使用布局资源 ID 来扩大布局资源。 |
void | setUIContent(ComponentContainer componentContainer) | 通过使用 ComponentContainer来膨胀 UI 控件。 |
void | startAbility(Intent intent) | 开始一项新技能。 |
void | startAbility(Intent intent,AbilityOptions 选项) | 从选项开始新技能。 |
void | startAbilityForResult(Intent intent,int requestCode) | 启动一个异能并在该异能被销毁时返回执行结果。 |
布尔值 | stopAbility(Intent intent) | 破坏使用服务模板的能力。 |
void | 终止() | 摧毁当前能力切片。 |
void | 终止能力() | 破坏主机能力。 |
String | toString() | 提供 impl 和相应的切片信息,以方便人类阅读。 |
从类 ohos.app 继承的方法。AbilityContext |
---|
attachBaseContext,canRequestPermission,createBundleContext,createParallelTaskDispatcher,<br />createSerialTaskDispatcher,DELETEFILE,getAbilityInfo,getAbilityManager,getApplicationContext,<br />getApplicationInfo,getAppType,getBundleCodePath,getBundleManager,getBundleName,<br />getBundleResourcePath,getCacheDir,getCallingAbility,getCallingBundle,getClassloader,<br />getCodeCacheDir,的getContext,getDatabaseDir,getDataDir,GETDIR,getDisplayOrientation,<br />getDistributedDir,getElementName,getExternalCacheDir,getExternalCacheDirs,getExternalFilesDir,<br />getExternalFilesDirs,getExternalMediaDirs,getFilesDir,getGlobalTaskDispatcher,getLocalClassName,<br />getMainTaskDispatcher,getNoBackupFilesDir,getPattern,getPreferencesDir,getProcessInfo,<br />getResourceManager,getTheme,getUITaskDispatcher,初始化,isDeviceEncryptedStorage,<br />isUpdatingConfigurations,requestPermissionsFromUser,重启,setPattern,setShowOnLockScreen,<br />setTheme,setTransitionAnimation,setWakeUpScreen,startAbilities,起动性能,<br />switchToCredentialEncryptedStorageContext, |
switchToDeviceEncryptedStorageContext,<br />terminateAbility,terminateAbilityResult,verifyCallingOrSelfPermission,verifyCallingPermission,<br />verifyPermission,verifySelfPermission |
从类 java.lang继承的方法。object |
---|
clone,equals,finalize,getClass,hashCode,notify,notifyAll,wait,wait,wait |
公共 AliceSlice()
受保护的 void onStart(Intent intent)
开始功能切片时回调。使用 intent 参数传送启动信息。
您必须为每个功能切片覆盖此方法,并使用 setUIContent(int)或setUIContent(ohos.agp.components.ComponentContainer)方法来设置 UI。
在能力切片的整个Lifecycle中只能调用一次此方法。因此,建议您使用此方法来实现初始化,例如,初始化计时器或定义全局对象。
参数:
参数名称 | 参数说明 |
---|---|
Intent | 指示能力切片开始时携带的信息。 |
protected void onActive()
回叫时的能力片进入 ACTIVE 状态。
能力切片中的UI ACTIVE 状态已获得焦点和是交互式的。
protected void onInactive()
当功能片进入 INACTIVE 状态时回调 。
INACTIVE 是中间状态,并且可以立即改变到 ACTIVE 或背景。在此状态下,功能片的 UI 可能可见,但不是交互式的。建议您不要使用此方法来触发复杂的服务逻辑。
protected void onForeground(Intent intent)
当能力片的状态从背景变为不 活动时回调 。
能力切片返回到前景。您可以使用此方法来实现重新初始化或通过使用 intent 参数来调整 UI。
参数:
参数名称 | 参数说明 |
---|---|
Intent | 指示能力切片返回不活动状态时携带的信息。 |
protected void onBackground()
技能片进入背景状态时回调 。
处于背景状态的能力切片的用户界面是不可见的,并且不是交互式的。建议您使用此方法停止或释放资源。
protected void onStop()
在摧毁能力片之前回叫。
功能切片调用 Terminate()方法后,将回调此方法。您可以使用此方法回收资源。
protected void onAbilityResult(int requestCode,int resultCode,Intent resultData)
在调用 startAbilityForResult(ohos.aafwk.content.Intent,int)以启动功能并返回结果时调用。
此方法提供的功能与该功能的Ability#onAbilityResult(int,int,Intent)方法相同。
参数:
参数名称 | 参数说明 |
---|---|
请求代码 | 指示功能启动后返回的请求代码。您可以定义请求代码以标识能力返回的结果。取值范围是0〜65535。 |
resultCode | 指示该功能启动后返回的结果代码。您可以定义结果代码以识别错误。 |
resultData | 指示该功能启动后返回的数据。您可以定义返回的数据。该值可以为空。 |
也可以看看:
startAbilityForResult(Intent,int)
protected void onResult(int requestCode,Intent resultIntent)
返回 presentForResult(ohos.aafwk.ability.AbilitySlice,ohos.aafwk.content.Intent,int)方法的结果时 回调。
当调用presentForResult(ohos.aafwk.ability.AbilitySlice,ohos.aafwk.content.Intent,int)以启动新的功能片时,销毁功能片时将返回执行结果。您可以重写此方法来处理结果。
参数:
参数名称 | 参数说明 |
---|---|
请求代码 | 指示能力切片启动后返回的请求代码。您可以定义请求代码以标识能力切片返回的结果。取值范围是 0〜65535。 |
resultIntent | 指示销毁起始异能之后返回的数据。此参数可以为空。 |
也可以看看:
presentForResult(AbilitySlice,Intent,int),setResult(Intent)
受保护的 void onOrientationChanged((AbilityInfo.DisplayOrientation displayOrientation)
当屏幕的显示方向改变时回调。
当显示方向改变时,您可以重写此方法以实现您的逻辑。默认情况下,更改显示方向时不执行任何操作。
参数:
参数名称 | 参数说明 |
---|---|
displayOrientation | 指示新的显示方向。支持以下值:DisplayOrientation#LANDSCAPE,DisplayOrientation#PORTRAIT,DisplayOrientation#FOLLOWRECENT和DisplayOrientation#UNSPECIFIED。 |
protected void onBackPressed()
当按下返回键时回叫。
默认实现会破坏能力切片。您可以覆盖此方法。
public boolean onKeyDown(int keyCode,KeyEvent keyEvent)
按下键时调用。当 AbilitySlice 中的任何组件获得焦点时,将首先处理该组件的按下事件。如果为组件的按下事件触发的回调返回 true,则不会调用此回调。此回调的默认实现不执行任何操作,并返回 false。
参数:
参数名称 | 参数说明 |
---|---|
关键代码 | 指示按下的键的代码。 |
keyEvent | 指示按下事件。 |
返回值:
如果已处理此事件且将不进一步传递,则返回 true;否则,返回 false。如果未处理此事件,则应返回 false并应将其传递给其他处理程序。
也可以看看:
onKeyUp(int,ohos.multimodalinput.event.KeyEvent)
public boolean onKeyUp(int keyCode,KeyEvent keyEvent)
释放键时调用。当 AbilitySlice 中的任何组件获得焦点时,将首先处理该组件的按键事件。如果为组件的按键事件触发的回调返回 true,则不会调用此回调。此回调的默认实现不执行任何操作,并返回 false。
参数:
参数名称 | 参数说明 |
---|---|
关键代码 | 指示已释放密钥的代码。 |
keyEvent | 指示按键事件。 |
返回值:
如果已处理此事件且将不进一步传递,则返回 true;否则,返回 false。如果未处理此事件,则应返回false并应将其传递给其他处理程序。
也可以看看:
onKeyDown(int,ohos.multimodalinput.event.KeyEvent)
公共string toString()
提供 impl 和相应的切片信息,以方便人类阅读。
覆写:
类 Object中的toString
返回值:
字符串格式的信息。
公共Window getWindow()
获取与当前能力对应的窗口。
此方法提供的功能与 Ability#getWindow()方法相同。
返回值:
返回与当前能力相对应的窗口。
public WindowManager.LayoutConfig getLayoutParams()
获取能力的窗口布局参数。必须为所有功能的窗口设置布局参数。为父窗口提供了这些参数,以指定如何布置当前功能的窗口。
此方法提供的功能与 Ability#getLayoutParams()方法相同。
返回值:
返回能力的窗口布局参数;如果未设置布局参数,则返回null。
public void setLayoutParams(WindowManager.LayoutConfig 参数)
设置功能的窗口布局参数。为父窗口提供了这些参数,以指定如何布置当前功能的窗口。
此方法提供的功能与 Ability#setLayoutParams(LayoutConfig)方法相同。
参数:
参数名称 | 参数说明 |
---|---|
参数 | 指示包含布局参数的 WindowManager.LayoutConfig 对象。此参数不能为空。 |
public void setIsAmbientMode(boolean isEnabled)
设置窗口的输入 AOD 模式
参数:
参数名称 | 参数说明 |
---|---|
isEnabled | 指示是否启用了 AOD 模式 |
public final void setUIContent(int layoutRes)
通过使用布局资源 ID 来扩大布局资源。
参数:
参数名称 | 参数说明 |
---|---|
layoutRes | 表示布局资源ID,不能为负数。 |
也可以看看:
setUIContent(ComponentContainer)
public void setUIContent((ComponentContainer componentContainer)
通过使用 ComponentContainer来膨胀 UI 控件 。
您可以创建一个包含多个组件的 ComponentContainer 实例。
参数:
参数名称 | 参数说明 |
---|---|
componentContainer | 指示一组定制组件。 |
也可以看看:
setUIContent(int)
public Component findComponentById(int resID)
根据资源 ID 在 XML 文件中查找组件。
参数:
参数名称 | 参数说明 |
---|---|
识别码 | 指示组件的资源 ID。 |
返回值:
如果找到记录,则返回与 ID 对应的组件;否则返回 null。
public final void present(AbilitySlice targetSlice,Intent intent)
提供另一个能力切片,可以是尚未开始的能力切片或宿主能力中的现有能力切片。
您可以使用 Intent对象传递必需的信息。
仅在以下情况下可以调用此方法:
参数:
参数名称 | 参数说明 |
---|---|
targetSlice | 指示目标能力切片,不能为空。 |
intent | 表示切换过程中携带的信息,不能为空。 |
也可以看看:
presentForResult(AbilitySlice,Intent,int)
public final void presentForResult(AbilitySlice targetSlice,Intent intent,int requestCode)
呈现另一个能力切片,并通过调用 setResult(ohos.aafwk.content.Intent) 返回目标能力切片的结果集 。
您可以使用 Intent 对象传递必需的信息。
仅在以下情况下可以调用此方法:
参数:
参数名称 | 参数说明 |
---|---|
targetSlice | 指示目标能力切片。此参数不能为空。 |
Intent | 表示切换过程中携带的信息,不能为空。 |
请求代码 | 指示定制的请求代码,不能为负数。 |
也可以看看:
setResult(Intent),onResult(int,Intent)
public final void setResult(Intent resultData)
设置销毁能力切片时要返回的数据。
当能力切片调用 Terminate()方法时,当前方法设置的结果数据将传输到调用方。
参数:
参数名称 | 参数说明 |
---|---|
resultData | 指示在破坏能力切片之后返回的数据。您可以定义返回的数据。该值可以为空。 |
也可以看看:
presentForResult(AbilitySlice,Intent,int),onResult(int,Intent)
公共最终无效终止()
摧毁当前能力切片。
当前能力切片调用此方法销毁自身时,由 setResult(ohos.aafwk.content.Intent)设置的结果数据将返回给调用方。如果要销毁的片是其宿主能力的唯一片,则该能力也将被摧毁。否则,该能力将不会受到影响。
public void startAbility(Intent intent)
开始一项新技能。
技能切片也可以使用此方法来启动新技能。与 Ability#startAbility(Intent)方法的功能相似,系统会根据intent参数的值从已安装的能力中定位目标能力,然后启动它。
参数:
参数名称 | 参数说明 |
---|---|
Intent | 指示启动的能力。 |
public void startAbility(Intent intent,AbilityOptions 选项)
从选项开始新技能。
技能切片也可以使用此方法来启动新技能。与 Ability#startAbility(Intent,AbilityOptions)方法的功能相似,系统会根据 intent 参数的值从已安装的能力中定位目标能力,然后启动它。
参数:
参数名称 | 参数说明 |
---|---|
intent | 指示启动的能力。 |
选项 | 能力选项转移到其他能力。 |
public void startAbilityForResult(Intent intent,int requestCode)
启动一个异能并在该异能被销毁时返回执行结果。
此方法提供的功能与 Ability#startAbilityForResult(Intent,int)方法相同。
参数:
参数名称 | 参数说明 |
---|---|
Intent | 指示启动的能力。 |
请求代码 | 指示功能启动后返回的请求代码。您可以定义请求代码以标识能力返回的结果。取值范围是 0〜65535。 |
也可以看看:
onAbilityResult(int,int,Intent)
public final boolean stopAbility(Intent intent)throws IllegalArgumentException,IllegalStateException
破坏使用服务模板的能力。
此方法提供的功能与 Ability#stopAbility(Intent)方法相同。
指定者:
接口ContextstopAbility
覆写:
stopAbility 类 AbilityContext
参数:
参数名称 | 参数说明 |
---|---|
Intent | 表示使用服务模板的能力。 |
返回值:
如果成功销毁了使用服务模板的能力,则返回 true;否则,返回 true。否则返回 false。
Throws:
Throws名称 | Throws说明 |
---|---|
IllegalArgumentException | 如果输入参数为 null,则Throws此异常。 |
IllegalStateException | 如果功能未初始化,则Throws此异常。 |
也可以看看:
Context.stopAbility(Intent)
公共无效 terminateAbility()
破坏主机能力。
此方法提供的功能与 Ability#terminateAbility()方法相同。
指定者:
接口 Context中的 terminateAbility
覆写:
terminateAbility 类 AbilityContext
也可以看看:
Context.terminateAbility()
public final boolean connectAbility(Intent intent,IAbilityConnection conn)throws IllegalArgumentException,IllegalStateException
将主持人能力与使用服务模板的能力联系起来。
此方法提供的功能与 Ability#connectAbility(Intent,IAbilityConnection)方法相同。
指定者:
接口Context connectAbility
覆写:
类 AbilityContext 中的connectAbility
参数:
参数名称 | 参数说明 |
---|---|
Intent | 表示使用服务模板的能力。 |
康恩 | 指示连接能力切片时转移的回调对象。 |
返回值:
如果连接成功,则返回 true;否则,返回 false。否则返回 false。
Throws:
Throws名称 | Throws说明 |
---|---|
IllegalStateException | 如果能力或能力切片未初始化,则Throws此异常。 |
IllegalArgumentException | 如果输入参数为 null,则Throws此异常。 |
也可以看看:
Context.connectAbility(Intent,IAbilityConnection)
public final void disconnectAbility(IAbilityConnection conn)throws IllegalArgumentException,IllegalStateException
将主机功能与使用服务模板的功能断开连接。
此方法提供的功能与 Ability#disconnectAbility(IAbilityConnection)方法相同。
指定者:
接口ContextdisconnectAbility
覆写:
disconnectAbility 类 AbilityContext
参数:
参数名称 | 参数说明 |
---|---|
康恩 | 指示连接能力切片时转移的回调对象。 |
Throws:
Throws名称 | Throws说明 |
---|---|
IllegalStateException | 如果能力或能力切片未初始化,则Throws此异常。 |
IllegalArgumentException | 如果输入参数为 null,则Throws此异常。 |
也可以看看:
Context.disconnectAbility(IAbilityConnection)
public final boolean connectAbility(Intent intent, IAbilityConnection conn) throws IllegalArgumentException, IllegalStateException
Connects the host ability to an ability that uses the Service template.
将主机功能迁移到同一分布式网络上的另一台设备。
此方法提供的功能与 Ability#continueAbility()方法相同。
Throws:
Throws名称 | Throws说明 |
---|---|
IllegalStateException | 如果主机能力未初始化或处于不允许此操作的状态(例如正在迁移),则Throws此异常。 |
UnsupportedOperationException | 如果主持人功能未实现 IAbilityContinuation 接口,则Throws此异常。 |
公共无效的 continuAbility (string deviceId)Throws IllegalStateException,UnsupportedOperationException
将主机功能迁移到同一分布式网络上的给定设备。
此方法提供的功能与 Ability#continueAbility(String)方法相同。
参数:
参数名称 | 参数说明 |
---|---|
设备编号 | 指示主机功能将迁移到的目标设备的 ID。如果此参数为 null,则此方法与 continueAbility()具有相同的效果。 |
Throws:
Throws名称 | Throws说明 |
---|---|
IllegalStateException | 如果主机能力未初始化或处于不允许此操作的状态(例如正在迁移),则Throws此异常。 |
UnsupportedOperationException | 如果主持人功能未实现 IAbilityContinuation 接口,则Throws此异常。 |
公共无效的 continueAbilityReversible()Throws IllegalStateException,UnsupportedOperationException
以可逆的方式将主机功能迁移到同一分布式网络上的另一台设备,该功能允许将该功能通过 reverseContinueAbility()迁移回本地设备 。
此方法提供的功能与 Ability#continueAbilityReversible() 方法相同。
Throws:
Throws名称 | Throws说明 |
---|---|
IllegalStateException | 如果主机能力未初始化或处于不允许此操作的状态(例如正在迁移),则Throws此异常。 |
UnsupportedOperationException | 如果主持人功能未实现 IAbilityContinuation 接口,则Throws此异常。 |
public void continueAbility (String deviceId) throws IllegalStateException,UnsupportedOperationException
以可逆的方式将主机功能迁移到同一分布式网络上的另一台设备,该功能允许将该功能通过reverseContinueAbility()迁移回本地设备 。
此方法提供的功能与 Ability#continueAbilityReversible(String)方法相同。
参数:
参数名称 | 参数说明 |
---|---|
设备编号 | 指示主机功能将迁移到的目标设备的ID。如果此参数为null,则此方法与 continueAbilityReversible()具有相同的效果。 |
Throws:
Throws名称 | Throws说明 |
---|---|
IllegalStateException | 如果主机能力未初始化或处于不允许此操作的状态(例如正在迁移),则Throws此异常。 |
UnsupportedOperationException | 如果主持人功能未实现 IAbilityContinuation 接口,则Throws此异常。 |
public boolean reverseContinueAbility()throws IllegalStateException,UnsupportedOperationException
将主机功能从同一分布式网络上的另一台设备迁移回本地设备。
此方法提供的功能与 Ability#reverseContinueAbility() 方法相同。
返回值:
如果迁移请求成功,则返回 true;否则,返回 true。否则返回 false。
Throws:
Throws名称 | Throws说明 |
---|---|
IllegalStateException | 如果宿主功能未涉及可逆迁移过程,或者处于不允许此操作的状态(例如正在将其迁移回),则Throws此异常。 |
UnsupportedOperationException | 如果主持人功能未实现 IAbilityContinuation 接口,则Throws此异常。 |
public final ContinuationState getContinuationState() throws UnsupportedOperationException
获得宿主能力的迁移状态。
此方法提供的功能与 Ability#getContinuationState()方法相同。
返回值:
返回迁移状态。
Throws:
Throws名称 | Throws说明 |
---|---|
UnsupportedOperationException | 如果主持人功能未实现 IAbilityContinuation 接口,则Throws此异常。 |
公共最终string getOriginalDeviceId()Throws UnsupportedOperationException
获取从其迁移主机功能的源设备的 ID。
此方法提供的功能与 Ability#getOriginalDeviceId()方法相同。
返回值:
返回源设备 ID。
Throws:
Throws名称 | Throws说明 |
---|---|
UnsupportedOperationException | 如果主持人功能未实现 IAbilityContinuation 接口,则Throws此异常。 |
public void setDisplayOrientation(AbilityInfo.DisplayOrientation requestedOrientation)
设置主持人能力的显示方向。
After you change the display orientation using this method, the system calls back the onOrientationChanged(ohos.bundle.AbilityInfo.DisplayOrientation) method. If requestedOrientation is set to DisplayOrientation#UNSPECIFIED, the display orientation of the ability depends on the system setting.
如果某个能力处于前台,该设置将立即生效。否则,该设置将在该异能返回到前景时生效。
指定者:
接口 Context中的setDisplayOrientation
覆写:
类 AbilityContext中的setDisplayOrientation
参数:
参数名称 | 参数说明 |
---|---|
请求的方向 | 指示显示方向,可以是“ jpg”,“ LANDSCAPE”,“ PORTRAIT”或“ FOLLOWRECENT”。 |
也可以看看:
Context.setDisplayOrientation(AbilityInfo.DisplayOrientation)
public boolean acquisitionAbilityFormAsync(Intent intent,AbilityForm.OnAcquiredCallback createdCallback)
请求目标能力提供的 AbilityForm 实例。
此方法异步执行。获取 AbilityForm 实例后,系统将回调 OnAcquiredCallback 方法。如果目标功能不使用 Page 模板或不提供 AbilityForm 功能,则不会通知呼叫者。
要使用此方法,您的应用程序必须具有 ohos.permission.REQUIRE_FORM 权限。该权限仅适用于系统应用程序。如果呼叫者没有权限,则返回 false。
参数:
参数名称 | 参数说明 |
---|---|
intent | 指示目标能力。 |
earnedCallback | 指示异步获取 AbilityForm 实例后的通知回调。 |
返回值:
如果请求发送成功,则返回 true;否则,返回 false。否则返回 false。
公共无效发布 AbilityForm(AbilityForm 能力表单)
释放主机能力的指定 AbilityForm 实例。
参数:
参数名称 | 参数说明 |
---|---|
能力表 | 指示要释放的 AbilityForm 实例。 |
public final Lifecycle getLifecycle()
获取当前能力切片的 Lifecycle对象。
指定者:
getLifecycle 接口 ILifecycle
返回值:
返回Lifecycle对象。
public final Ability getAbility()
获得该切片所属的能力。
返回值:
归还能力。
鸿蒙OS 电话服务概述鸿蒙OS 发起一路呼叫鸿蒙OS 发送一条文本信息鸿蒙OS 获取当前蜂窝网络信号信息鸿蒙OS 观察蜂窝网络状态变化...
这些设置控制autovacuum特性的行为。详情请参考 第24.1.6节。注意很多这些设置可以被针对每个表 的设置所覆盖,参见Storage Para...
目录6.1. 插入数据6.2. 更新数据6.3. 删除数据6.4. 从修改的行中返回数据前面的章节讨论了如何创建表和其他结构来保存你的数据。...