阅读(466) (14)

鸿蒙OS Ability

2020-09-21 17:27:03 更新

Ability是 HarmonyOS 应用程序可以提供的功能的抽象。HarmonyOS 应用程序的Ability分为两种类型:特征Ability和粒子Ability。特征Ability代表具有 UI 的功能,并旨在与用户进行交互。粒子Ability表示没有 UI 的Ability,并且主要用于提供对 FA 的支持,例如,提供计算功能作为后台服务或提供数据访问功能作为数据存储库。两种功能为您提供了不同的模板,以供您实现不同的功能。当前,HarmonyOS 提供以下类型的Ability模板:

注意:在下面的描述中,页面,服务或数据功能表示使用相应模板的功能,而单独的功能表示使用任何类型的模板的功能。

  • 页面:显示 UI 的功能。UI 通过 AbilitySlice 呈现。您必须重写 onStart(ohos.aafwk.content.Intent)方法,并使用 setMainRoute(java.lang.String) 和addActionRoute(java.lang.String,java.lang.String)方法来配置 Page 功能的条目。
  • 服务:一种在后台运行且没有 UI 的功能。它用于开发始终在后台运行或与其他功能连接的服务。当服务Ability与其他Ability连接时,将返回一个远程对象,您可以使用该远程对象来调用该服务Ability提供的功能。
  • 数据:一种用于操作数据且没有 UI 的功能。它提供了用于插入,删除,更新和查询数据以及打开文件的方法。您必须实现这些方法。

Ability简介

每个应用程序都有一个配置文件:config.json。该文件存储在Java代码的根目录中。

  ├── entry
  │   ├── libs
  │   ├── src
  │   │   ├── main
  │   │   │   ├── java
  │   │   │   │   └── com
  │   │   │   │       └── example
  │   │   │   │           └── myapplication
  │   │   │   │               ├── slice
  │   │   │   │               │   └── PageAbilitySlice.java
  │   │   │   │               └── PageAbility.java
  │   │   │   ├── resources
  │   │   │   │     ├── base
  │   │   │   │     │   ├── element
  │   │   │   │     │   │   └── string.json
  │   │   │   │     │   └── media
  │   │   │   │     │       └── icon.png
  │   │   │   │     └── rawfile
  │   │   │   └── config.json

  

应用程序文件结构的说明如下:

该条目存储应用程序的代码,资源文件和配置文件。文件夹名称是可编辑的。

entry / libs 存储第三方库文件。创建项目时,IDE 将自动生成此目录。

entry / src / main / java 用于代码开发。您可以根据需要在此目录中更改文件名。创建项目时,IDE 将自动生成此目录。

entry / src / main / resources / base / media为您的应用程序存储 PNG 和 JPG 图像文件。创建项目时,IDE 将自动生成此目录。

entry / src / main / resources / base / element存储用于读取文本资源的资源文件。创建项目时,IDE 将自动生成此目录。

入口/ src 目录/主/ config.json 文件位于根目录。该文件包含有关应用程序的配置信息。系统运行该应用程序,并基于此文件的内容在 UI 上显示内容。创建项目时,IDE 将自动生成此文件。

要开发新Ability,您必须在 config.json 文件中注册该Ability。示例代码:

 {
     "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",
               ...
           }
         ]
         ...
     }
 }

 

注意:应用程序的所有功能都必须在此文件中注册,并附加到功能标签上。

  • 类型标签指示Ability使用的模板的类型,其值页面,服务或提供者分别指示页面,服务或数据模板。必须指定类型标签。
  • 名称标签表示Ability的名称,必须指定。
  • 您可以保留其他标签的默认值。

Ability生命周期

作为应用程序的基本单元,功能具有以下四个生命周期状态:

  • 初始:能已加载到内存中但未运行。这是所有Ability的初始状态。
  • 不活跃:该功能已加载并执行,但不是交互式的。通常,在Ability更改为 ACTIVEBackground 之前处于中间状态。在这种状态下,UI 可能可见,但无法接收输入事件。
  • 活动:该功能可见且具有交互性。认为该Ability具有焦点。
  • 背景:这种Ability是看不见的。如果系统内存不足,则会首先破坏此状态下的功能。

下图显示了完整的Ability生命周期。每个状态转换都会执行一个特定的回调。您可以覆盖回调方法。

img

注意:所有页面功能都必须实现 onStart(ohos.aafwk.content.Intent) 来设置其 UI。要覆盖生命周期回调方法,必须首先调用与父类相对应的回调方法,例如 super.onStart()。状态转换在主线程上实现。因此,建议您在生命周期回调中执行简短逻辑,以防止该功能的主线程被阻塞。

以下是该功能的所有生命周期回调方法:

 public class MainAbility extends Ability {
      protected void onStart(Intent intent);

 
      protected void onActive();

 
      protected void onInactive();

 
      protected void onForeground(Intent intent);

 
      protected void onBackground();

 
      protected void onStop();
  }

有关生命周期回调的详细信息,请参见 AbilitySlice

起始Ability

这个起动性(ohos.aafwk.content.Intent)方法用于启动一个新的Ability,其被放置在Ability堆栈的顶部。它使用参数 Intent 来描述Ability。以下代码显示了如何启动异能:

         Button button = new Button(this);
         button.setClickedListener(listener -> {
             Operation operation = new Intent.OperationBuilder()
                     .withDeviceId("")
                     .withBundleName("com.huawei.hiworld")
                     .withAbilityName("com.huawei.hiworld.MainAbility")
                     .build();

 
             Intent intent = new Intent();
             intent.setOperation(operation);
             intent.setParam("age", 10);

 
             startAbility(intent);
         });

 

连接Ability

这个连接性(ohos.aafwk.content.Intent,ohos.aafwk.ability.IAbilityConnection)方法用于连接到服务的Ability。它具有两个参数:Intent IAbilityConnectionIntent 提供有关目标服务连接Ability的信息,IAbilityConnection 是一个回调对象,用于通知您连接结果(成功或失败)。

与connectAbility(ohos.aafwk.content.Intent,ohos.aafwk.ability.IAbilityConnection)相比,disconnectAbility(ohos.aafwk.ability.IAbilityConnection)方法用于与已连接的服务Ability断开连接。

对于服务功能,您可以重写 onConnect(ohos.aafwk.content.Intent)方法以提供一个 RemoteObject 进行调用。默认情况下,返回null。

     protected IRemoteObject onConnect(Intent intent) {
         return null;
     }

 

嵌套类摘要

修饰符和类型 描述
静态类 Ability.LayoutParamsHelper 帮助您使用 Intent 设置应用程序启动Window的布局参数。
静态类 Ability.WindowAttributeHelper 帮助您使用 Intent 设置当前应用程序的Window属性。

领域摘要

从接口 ohos.app 继承的字段。CONTEXT
CONTEXT_IGNORE_SECURITYCONTEXT_INCLUDE_CODECONTEXT_RESOUCE_ONLYCONTEXT_RESTRICTEDMODE_APPENDMODE_PRIVATE

构造器摘要

建设者 描述
Ability()

方法总结

修饰符和类型 方法 描述
void addActionRoute(String操作,String输入) 将动作绑定到 AbilitySlice
整型 batchInsert(Uri uri,ValuesBucket []值) 将多个数据记录插入数据库。
PacMap 调用(String方法,String arg,PacMap  附加功能) 在此数据功能中定义一个方法(实现取决于子类)。
void cancelBackgroundRunning() 取消此功能的后台运行以释放系统内存。
布尔值 connectAbility(Intent intent,IAbilityConnection conn) 将Ability连接到服务Ability。
void continueAbility() 将此功能迁移到同一分布式网络上的另一台设备。
void continueAbility(String deviceId) 将此功能迁移到同一分布式网络上的给定设备。
void continueAbilityReversible() 以可逆的方式将此功能迁移到同一分布式网络上的另一台设备,该功能允许将该功能通过reverseContinueAbility()迁移回本地设备。
void continueAbilityReversible(String deviceId) 以可逆的方式将此功能迁移到同一分布式网络上的给定设备,该功能允许将该功能通过 reverseContinueAbility()迁移回本地设备。
整型 删除(Uri uri,DataAbilityPredicates  谓词) 删除一个或多个数据记录。
Uri denormalizeUri(Uri uri) 将 normalizeUri(ohos.utils.net.Uri)生成的给定归一化 uri 转换为非归一化的 uri 。
void 断开连接Ability(IAbilityConnection conn) 与 connectAbility(ohos.aafwk.content.Intent,ohos.aafwk.ability.IAbilityConnection)  相比,断开服务Ability与服务Ability的连接。
void dispatchAccessibilityEventInfo(AccessibilityEventInfo 信息) 在此功能的组件上发生可访问性事件时调用。
DataAbilityResult [] executeBatch (ArrayList < DataAbilityOperation >操作) 在数据库上执行批处理操作。
Component findComponentById(int resID) 根据资源 ID 在 XML 文件中查找组件。
AbilityPackage getAbilityPackage(AbilityInfo skillInfo) 获取此功能所属的单例 AbilityPackage  对象。
Object getAVController() 获得Ability的Window媒体控制器。
ContinuationState getContinuationState() 获得此功能的迁移状态。
Component getCurrentFocus() 获取当前具有Window焦点的组件。
Transition getEnterTransition() 获取Ability输入过渡类型。
String [] getFileTypes(Uri uri,String mimeTypeFilter) 获取文件的 MIME 类型。
Intent  getIntent() 获取启动此功能的 Intent 对象。
WindowManager.LayoutConfig getLayoutParams() 获取Ability的Window布局参数。
Lifecycle getLifecycle() 获取当前Ability的Lifecycle对象。
String getOriginalDeviceId() 获取从中迁移此功能的源设备的 ID。
Transition getReturnTransition() 获取Ability返回过渡类型。
ComponentContainer getRootUIContent() 获取技能或顶级技能切片 ui 内容的根组件。
String getType(Uri uri) 获取与“数据”功能的 URI 指定的数据匹配的 MIME 类型。
Window getWindow() 获取与当前Ability对应的Window。
布尔值 hasWindowFocus() 检查此功能的主Window是否具有Window焦点。
整型 insert(Uri uri,ValuesBucket值) 将数据记录插入数据库。
布尔值 isTerminate() 检查当前Ability是否被破坏。
void keepBackgroundRunning(int id,NotificationRequest notificationRequest) 在后台保留此服务功能并显示通知栏。
Uri normalizeUri(Uri uri) 通过支持此数据功能对 Uri 进行规范化将引用数据功能的给定 uri 转换为规范化 URI。
protected void onAbilityResult(int requestCode,int resultCode,Intent resultData) 在调用 startAbilityForResult(ohos.aafwk.content.Intent,int)以启动功能并返回结果时调用。
protected void onActive() 回叫时的Ability进入 ACTIVE 状态。
protected void onBackground() 技能进入背景状态时回调。
protected void onBackPressed() 当按下返回键时回叫。
protected void onCommand(Intent intent,boolean restart) 不推荐使用。
protected void onCommand(Intent intent,boolean restart,int startId) 服务启动时回叫。
void onConfigurationUpdated(Configuration配置) 在系统配置更新时调用。
protected IRemoteObject 为onConnect(Intent intent ) 当服务Ability首次与该Ability相关联时回调。
protectedAbilityForm onCreateForm() 调用以返回 AbilityForm 对象。
protected void onDisconnect(Intent intent ) 当与服务Ability相关的所有Ability都断开连接时回调。
void onEventDispatch() 每次为此功能调度按键,触摸或轨迹球事件时调用。
protected void onForeground(Intent intent ) 当技能的状态从背景变为不活跃时回调。
protected void onInactive() 当某个能进入 INACTIVE 状态时被回调(此状态下的能不是交互式的,可能会变为Background 或 ACTIVE 状态)。
布尔值 onKeyDown(int keyCode,KeyEvent keyEvent) 按下键时调用。
布尔值 onKeyUp(int keyCode,KeyEvent keyEvent) 释放键时调用。
void onLeaveForeground() 当此功能由于用户操作(例如,用户触摸 Home 键)而即将离开前台并进入背景时调用。
void onMemoryLevel(int级别) 在系统确定修整内存时调用,例如,当该功能在后台运行并且没有足够的内存来运行尽可能多的后台进程时调用。
CharSequence onNewDescription() 在此功能之前调用的是为该功能生成新描述的背景。
protected void onNewIntent(Intent Intent) 在功能的启动模式设置为 singleInstance 时调用。
protected void onOrientationChanged(AbilityInfo.DisplayOrientation displayOrientation) 当屏幕的显示方向改变时回调。
protected void onPostActive() 在调用 onActive()之后完全激活该功能时调用。
protected void onPostStart(PacMap pacMap) 通过调用 onStart(ohos.aafwk.content.Intent)和onRestoreAbilityState(ohos.utils.PacMap)启动功能时调用。
void onReconnect(Intent Intent) 当新的客户端之前与之断开所有连接后,新客户端尝试连接至服务Ability时调用。
void onRequestPermissionsFromUserResult(int requestCode,String []权限,int [] grantResults) 使用AbilityContext.requestPermissionsFromUser(java.lang.String [],int)请求权限后回调。
void onRestoreAbilityState(PacMap inState) 由系统恢复Ability的数据和状态。
void onSaveAbilityState(PacMap outState) 保存此功能的临时数据和状态。
protected void 在onStart(Intent Intent) 在一项功能开始初始化时回调(在该功能的整个生命周期中只能调用一次)。
protected void onStop() 在消灭异能之前回叫。
protected boolean onTouchEvent(TouchEvent事件) 在将触摸事件调度到此功能时调用。
void onWindowFocusChanged(boolean hasFocus) 当此Ability获得或失去Window焦点时调用。
FileDescriptor openFile(Uri uri,String模式) 打开一个文件。
RawFileDescriptor openRawFile(Uri uri,String模式) 打开一个原始文件。
ResultSet 查询(Uri uri,String DataAbilityPredicates谓词) 查询数据库中的一个或多个数据记录。
布尔值 reverseContinueAbility() 将此功能从同一分布式网络上的另一台设备迁移回本地设备。
void setAbilitySliceAnimator(AbilitySliceAnimator skillSliceAnimator) 在当前Ability的 AbilitySlice 实例之间设置过渡动画。
void setAVController(Object控制器) 设置Ability的Window媒体控制器。包含Window媒体信息的媒体控制器。
void setEnterTransition(Transition过渡) 设置Ability输入过渡类型。
void setIntent(Intent Intent) 设置可以通过调用 getIntent() 获得的 Intent 对象。
void setIsAmbientMode(boolean isEnabled) 设置Window的输入 AOD 模式
void setLayoutParams(WindowManager.LayoutConfig参数) 设置功能的Window布局参数。
void setMainRoute(String入口) 设置此功能的主要路线。
void setResult(int resultCode,Intent resultData) 设置此 Page 功能返回给调用方的结果代码和数据。
void setReturnTransition(Transition过渡) 设置Ability返回过渡类型。
布尔值 setSwipeToDismiss(boolean isEnabled) 设置一个Window及其功能是否在滑动时完成。
void setUIContent(int layoutRes) 通过使用布局资源 ID 来扩大布局资源。
void setUIContent(ComponentContainer componentContainer) 通过使用ComponentContainer来膨胀 UI 控件。
void setWindowBackgroundColor(int红色,int绿色,int蓝色) 在RGB颜色模式下设置Window的背景色。
void startAbility(IntentIntent) 开始一项新技能。
void startAbility(Intent intent,AbilityOptions选项) 从选项开始新技能。
void startAbilityForResult(Intent intent,int requestCode) 启动一个异能并在该异能被销毁时返回执行结果。
布尔值 stopAbility(IntentIntent) 摧毁另一种服务Ability。
void 终止Ability() 破坏此页面或服务功能。
整型 更新(Uri uri,ValuesBucket值,DataAbilityPredicates谓词) 更新数据库中的一个或多个数据记录。
从类 ohos.app 继承的方法。AbilityContext
attachBaseContextcanRequestPermissioncreateBundleContextcreateParallelTaskDispatchercreateSerialTaskDispatcherDELETEFILEgetAbilityInfogetAbilityManagergetApplicationContextgetApplicationInfogetAppTypegetBundleCodePathgetBundleManagergetBundleNamegetBundleResourcePathgetCacheDirgetCallingAbilitygetCallingBundlegetClassloadergetCodeCacheDir的getContextgetDatabaseDirgetDataDirGETDIRgetDisplayOrientationgetDistributedDirgetElementNamegetExternalCacheDirgetExternalCacheDirsgetExternalFilesDirgetExternalFilesDirsgetExternalMediaDirsgetFilesDirgetGlobalTaskDispatchergetLocalClassNamegetMainTaskDispatchergetNoBackupFilesDirgetPatterngetPreferencesDirgetProcessInfogetResourceManagergetThemegetUITaskDispatcher初始化isDeviceEncryptedStorageisUpdatingConfigurationsrequestPermissionsFromUser重启setDisplayOrientationsetPatternsetShowOnLockScreensetThemesetTransitionAnimationsetWakeUpScreenstartAbilities起动性能switchToCredentialEncryptedStorageContextswitchToDeviceEncryptedStorageContextterminateAbilityterminateAbilityResultverifyCallingOrSelfPermissionverifyCallingPermissionverifyPermissionverifySelfPermission
从类 java.lang 继承的方法。Object
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

构造器详细信息

Ability

公众Ability

方法细节

获得AbilityPackage

公共 AbilityPackage getAbilityPackage((AbilityInfo skillInfo)

获取此功能所属的单例 AbilityPackage 对象。

返回值:

返回此Ability所属的单例 AbilityPackage 对象。

获取窗口

公共Window getWindow()

获取与当前Ability对应的Window。

您可以使用 Window 实例来控制Window的属性,例如Window大小,位置和填充。

返回值:

返回与当前Ability相对应的Window。

设置UI内容

公共最终无效 setUIContent(int layoutRes)

通过使用布局资源ID来扩大布局资源。

参数:

参数名称 参数说明
layoutRes 表示布局资源ID,不能为负数。

也可以看看:

setUIContent(ComponentContainer)

设置UI内容

公共无效 setUIContent((ComponentContainer componentContainer)

通过使用 ComponentContainer来膨胀 UI 控件 。

您可以创建一个包含多个组件的ComponentContainer实例。

参数:

参数名称 参数说明
componentContainer 指示一组定制组件。

也可以看看:

setUIContent(int)

设置前级处理器

public void setAVController(Object控制器)

设置Ability的Window媒体控制器。包含Window媒体信息的媒体控制器。

参数:

参数名称 参数说明
控制者 指示包含Window媒体信息的对象。此参数不能为空。

获取AV控制器

公共Object getAVController()

获得Ability的Window媒体控制器。包含Window的媒体信息的媒体控制器。

返回值:

返回包含Window媒体信息的对象;如果未设置媒体控制器,则返回 null。

获取布局参数

public WindowManager.LayoutConfig getLayoutParams()

获取Ability的Window布局参数。必须为所有功能的Window设置布局参数。为父Window提供了这些参数,以指定如何布置当前功能的Window。

您可以使用布局参数来控制功能的Window属性,例如位置,长度和宽度。

返回值:

返回Ability的Window布局参数;如果未设置布局参数,则返回 null。

设置布局参数

公共无效 setLayoutParams(WindowManager.LayoutConfig 参数)

设置功能的Window布局参数。为父Window提供了这些参数,以指定如何布置当前功能的Window。

您可以使用布局参数来控制功能的Window属性,例如位置,长度和宽度。

参数:

参数名称 参数说明
参数 指示包含布局参数的 WindowManager.LayoutConfig 对象。此参数不能为空。

查找组件ById

公共Component findComponentById(int resID)

根据资源ID在XML文件中查找组件。

参数:

参数名称 参数说明
识别码 指示组件的资源ID。

返回值:

如果找到记录,则返回与 ID 对应的组件;否则返回 null。

设置环境模式

公共无效 setIsAmbientMode(布尔 isEnabled)

设置Window的输入 AOD 模式

参数:

参数名称 参数说明
isEnabled 指示是否启用了 AOD 模式

按下按键

公共布尔 onKeyDown(int keyCode,KeyEvent keyEvent)

按下键时调用。当“技能”中的任何组件获得焦点时,将首先处理该组件的按下事件。如果为组件的按下事件触发的回调返回 true,则不会调用此回调。此回调的默认实现不执行任何操作,并返回 false。

参数:

参数名称 参数说明
关键代码 指示按下的键的代码。
keyEvent 指示按下事件。

返回值:

如果已处理此事件且将不进一步传递,则返回 true;否则,返回 false。如果未处理此事件,则应返回 false 并应将其传递给其他处理程序。

也可以看看:

onKeyUp(int,ohos.multimodalinput.event.KeyEvent)

在关键

布尔布尔 onKeyUp(int keyCode,KeyEvent keyEvent)

释放键时调用。当“技能”中的任何组件获得焦点时,将首先处理该组件的按键事件。如果为组件的按键事件触发的回调返回 true,则不会调用此回调。此回调的默认实现不执行任何操作,并返回 false。

参数:

参数名称 参数说明
关键代码 指示已释放密钥的代码。
keyEvent 指示按键事件。

返回值:

如果已处理此事件且将不进一步传递,则返回 true;否则,返回 false。如果未处理此事件,则应返回 false 并应将其传递给其他处理程序。

也可以看看:

onKeyDown(int,ohos.multimodalinput.event.KeyEvent)

onBackPressed

受保护的void onBackPressed()

当按下返回键时回叫。

默认实现会破坏该功能。您可以覆盖此方法。

连接Ability

public boolean connectAbility(Intent intent,IAbilityConnection conn)

将Ability连接到服务Ability。

Page 或 Service 功能可以调用此方法,但是连接的目的地必须是 Service 功能。连接服务功能后,必须实现IAbilityConnection 接口才能获取目标服务功能的代理。

调用Context必须已启动并且尚未销毁。否则,此方法返回 false。例如,当 AbilityForm 供应商在组件单击或触摸事件触发的回调中调用此方法时,可能会返回 false,因为供应商可能未启动。

指定者:

接口ContextconnectAbility

覆写:

AbilityContext中的connectAbility

参数:

参数名称 参数说明
Intent 指示服务连接Ability。
conn 指示连接服务功能时的回调对象。

返回值:

如果连接成功,则返回 true;否则,返回 false。否则返回 false。

throw:

throw名称 throw说明
IllegalStateException 如果功能未初始化,则throw此异常。
IllegalArgumentException 如果输入参数为 null,则throw此异常。

也可以看看:

Context.connectAbility(Intent,IAbilityConnection)

断开Ability

公共无效的 disconnectAbility((IAbilityConnection conn)

与 connectAbility(ohos.aafwk.content.Intent,ohos.aafwk.ability.IAbilityConnection)相比,断开服务Ability与服务Ability的连接 。

指定者:

接口ContextdisconnectAbility

覆写:

disconnectAbility AbilityContext

参数:

参数名称 参数说明
conn 指示连接服务功能时的回调对象。

throw:

throw名称 throw说明
IllegalStateException 如果功能未初始化,则throw此异常。
IllegalArgumentException 如果输入参数为 null,则throw此异常。

也可以看看:

Context.disconnectAbility(IAbilityConnection)

getLifecycle

公共最终 Lifecycle getLifecycle()

获取当前Ability的 Lifecycle 对象。

指定者:

getLifecycle 接口 ILifecycle

返回值:

返回Lifecycle对象。

也可以看看:

Lifecycle

public int insert((Uri uri,ValuesBucket value)

将数据记录插入数据库。此方法应由数据Ability实现。

参数:

参数名称 参数说明
uri 指示要插入数据的位置。
指示要插入的数据。

返回值:

返回新插入的数据记录的索引。

批量插入

public final int batchInsert(Uri uri,ValuesBucket [] values)

将多个数据记录插入数据库。此方法应由数据Ability实现。

参数:

参数名称 参数说明
uri 指示要插入数据的位置。
价值观 指示要插入的数据。

返回值:

返回插入的数据记录数。

删除

public int delete(Uri uri,DataAbilityPredicates predicates)

删除一个或多个数据记录。此方法应由数据Ability实现。

参数:

参数名称 参数说明
uri 指示存储要删除数据的数据库表。
谓词 表示过滤条件。如果此参数为 null,则默认情况下将删除所有数据记录。

返回值:

返回已删除的数据记录数。

更新

public int 更新(Uri uri,ValuesBucket value,DataAbilityPredicates predicates)

更新数据库中的一个或多个数据记录。此方法应由数据Ability实现。

参数:

参数名称 参数说明
uri 指示存储要更新数据的数据库表。
指示要更新的数据。此参数可以为空。
谓词 表示过滤条件。如果此参数为null,则默认情况下将更新所有数据记录。

返回值:

返回更新的数据记录数。

询问

公共ResultSet查询(Uri uri,String [] columns,DataAbilityPredicates predicates)

查询数据库中的一个或多个数据记录。此方法应由数据Ability实现。

参数:

参数名称 参数说明
uri 表示存储要查询的数据的数据库表。
指示要查询的列,以数组形式,例如{“ name”,“ age”}。当此参数为 null 时,您应该定义处理逻辑。
谓词 表示过滤条件。如果此参数为 null,则默认情况下将查询所有数据记录。

返回值:

返回查询的数据。

执行批处理

公共最终 DataAbilityResult [] executeBatch(ArrayList < DataAbilityOperation > operation)throws OperationExecuteException

在数据库上执行批处理操作。此方法应由数据Ability实现。

要在数据库上执行的批处理操作封装为 DataAbilityOperation 对象。每个对象对应一个操作,例如,插入或删除。每个操作的调用结果将保存到 DataAbilityResult 类型的数据数组并由其返回。

参数:

参数名称 参数说明
运作 指示数据操作列表,其中可以包含对数据库的多项操作。

返回值:

以数组形式返回每个操作的结果。

throw:

throw名称 throw说明
OperationExecuteException 如果批处理操作失败,则throw此异常。

打开文件

public FileDescriptor openFile(Uri uri,String mode)throws FileNotFoundException

打开一个文件。此方法应由数据Ability实现。

参数:

参数名称 参数说明
uri 指示要打开的文件的路径。
模式 指示打开模式,对于只读访问可以为“ r”,对于只读访问可以为“ w”(擦除文件中当前存在的任何数据),对于截断任何现有文件的写访问可以为“ wt”,“ wa” “”表示仅写访问权限以追加到任何现有数据,“ rw”表示对任何现有数据的读写访问,“ rwt”表示对截断任何现有文件的读写访问。

返回值:

返回文件描述符的 FileDescriptor 对象。

Thorw:

throw名称 throw说明
FileNotFoundException 如果文件不存在,则throw此异常。

openRawFile

public RawFileDescriptor openRawFile(Uri uri,String模式)throw FileNotFoundException

打开一个原始文件。此方法应由数据Ability实现。

参数:

参数名称 参数说明
uri 指示要打开的原始文件的路径。
模式 指示打开模式,对于只读访问可以为“ r”,对于只读访问可以为“ w”(擦除文件中当前存在的任何数据),对于截断任何现有文件的写访问可以为“ wt”,“ wa” “”表示仅写访问权限以追加到任何现有数据,“ rw”表示对任何现有数据的读写访问,“ rwt”表示对截断任何现有文件的读写访问。

返回值:

返回包含文件描述符的 RawFileDescriptor 对象。

throw:

throw名称 throw说明
FileNotFoundException 如果原始文件不存在,则throw此异常。

getFileTypes

public String [] getFileTypes((Uri uri,String mimeTypeFilter)

获取文件的 MIME 类型。此方法应由数据Ability实现。

参数:

参数名称 参数说明
uri 指示要获取的文件的路径。
mimeTypeFilter 指示要获取的文件的 MIME 类型。此参数不能设置为 null。<br />1.“  / ”:获得数据Ability支持的所有类型。<br />2.“ image / ”:获取主要类型为任何子类型的图像的文件。<br />3.“  / jpg”:获取其子类型为任何主要类型的 JPG 的文件。

返回值:

返回匹配文件的 MIME 类型;如果没有与数据Ability匹配的类型,则返回 null。

呼叫

公共 PacMap 调用(String方法,String arg,PacMap 附加功能)

在此数据功能中定义一个方法(实现取决于子类)。

参数:

参数名称 参数说明
方法 指示方法名称。
arg 指示方法传输的 String 参数。
extras 表示该方法传输的 PacMap 参数。

返回值:

返回方法的 PacMap 结果。

获取类型

公共String getType((Uri uri)

获取与“数据”功能的 URI 指定的数据匹配的 MIME 类型。此方法应由数据Ability实现。

数据功能支持常规数据类型,包括文本,HTML 和 JPEG。

参数:

参数名称 参数说明
uri 指示数据的URI。

返回值:

返回与 uri 指定的数据匹配的 MIME 类型。

onStart

受保护的 void onStart(Intent intent)

在一项功能开始初始化时回调(在该功能的整个生命周期中只能调用一次)。

大多数初始化操作应通过调用此方法来执行。例如,您可以使用当前方法调用setMainRoute(java.lang.String)和addActionRoute(java.lang.String,java.lang.String)来为 Page 功能设置主路由器和动作路由器。

参数:

参数名称 参数说明
Intent 表示启动此功能时携带的信息。注意:对于服务技能,将传递 null。

onPostStart

受保护的 void onPostStart(PacMap pacMap)

通过调用 onStart(ohos.aafwk.content.Intent)和 onRestoreAbilityState(ohos.utils.PacMap)启动功能时调用 。

通常,此方法用于系统类在应用程序启动后执行最终的初始化操作。您不需要为您的应用程序实现此方法。重写此方法时,必须调用其父类的实现。否则,将引发异常。

参数:

参数名称 参数说明
pacMap 指示 onSaveAbilityState(ohos.utils.PacMap)中最近提供的数据。

onStop

受保护的 void onStop()

在消灭异能之前回叫。

此方法指示Ability生命周期的结束。可以在功能调用 terminateAbility()方法或该功能的最后一个功能片调用 AbilitySlice#terminate() 方法之后执行。通常,此方法用于清除资源。

onActive

受保护的 void onActive()

回叫时的Ability进入 ACTIVE 状态。

在Ability ACTIVE 状态是在前台和是交互式的。

onPostActive

受保护的 void onPostActive()

在调用 onActive()之后完全激活该功能时调用 。

通常,此方法用于系统类,以在激活应用程序后执行最终设置。您不需要为您的应用程序实现此方法。重写此方法时,必须调用其父类的实现。否则,将引发异常。

不活动时

受保护的 void onInactive()

当某个能进入 INACTIVE 状态时被回调(此状态下的 能不是交互式的,可能会变为 Background ACTIVE 状态)。

不活动是一种中间状态,不会持续很长时间。之间频繁切换 ACTIVEINACTIVE 是可能的。因此,您可以使用此方法执行某些简单的操作,例如,提交任何更改。

在前景上

onForeground 上受保护的 void(Intent intent)

当技能的状态从背景变为不 活跃时回调 。

这是一种中间状态回调方法。通常,系统调用此方法以刷新数据状态,然后回调 onActive()方法。

参数:

参数名称 参数说明
Intent 指示该Ability恢复为非活动状态时携带的信息。

在背景上

受保护的 void onBackground()

技能进入背景状态时回调 。

Background 状态下的 Page 功能是不可见的。建议您暂停与该功能相关的线程,并清除一些资源以释放系统内存。

在连接

受保护的 IRemoteObject onConnect(Intent intent)

当服务Ability首次与该Ability相关联时回调。

仅在服务Ability上调用此方法。您可以覆盖该方法以返回服务Ability的代理。

参数:

参数名称 参数说明
Intent 指示有关服务Ability的连接信息。

返回值:

返回服务Ability的代理。

断开时

保护无效 onDisconnect (Intent intent)

当与服务Ability相关的所有Ability都断开连接时回调。

仅在服务Ability上调用此方法。您可以覆盖该方法以清除服务Ability的代理资源。

参数:

参数名称 参数说明
Intent 指示有关服务Ability的断开连接信息。

在命令

@Deprecated protected void onCommand(Intent intent,boolean restart)

不推荐使用。服务Ability启动时回调。

此方法只能由“服务”功能调用。您可以使用 startAbility(ohos.aafwk.content.Intent)方法启动服务功能。然后,系统调用当前方法以使用传输的 intent 参数执行其自己的逻辑。

参数:

参数名称 参数说明
Intent 指示启动服务功能的Intent。
重新开始 指示启动模式。值为 true 表示服务Ability在销毁后重新启动,值为 false 表示正常启动。

在命令

受保护的 void onCommand(Intent intent,boolean restart,int startId)

服务启动时回叫。

此方法只能由 Service 调用。您可以使用 startAbility(ohos.aafwk.content.Intent)方法启动 Service。然后,系统调用当前方法以使用传输的 intent 参数执行其自己的逻辑。

参数:

参数名称 参数说明
Intent 指示服务启动的Intent。
重新开始 指示启动模式。值为 true 表示服务在销毁后将重新启动,而值为 false 表示正常启动。
startId 指示启动服务功能的次数。每次启动异能时,startId 都会增加 1。例如,如果该Ability已启动六次,则 startId 的值为 6。

New Intent

protected void onNewIntent (Intent intent)

在功能的启动模式设置为 singleInstance 时调用。当您重新启动位于功能堆栈顶部的功能时,会发生这种情况。

参数:

参数名称 参数说明
Intent 指示包含有关Ability信息的新Intent

关于配置更新

public void onConfigurationUpdated (Configuration configuration)

在系统配置更新时调用。

参数:

参数名称 参数说明
组态 配置信息包括语言环境。

触摸事件

受保护的布尔 onTouchEvent(TouchEvent事件)

在将触摸事件调度到此功能时调用。此回调的默认实现不执行任何操作,并返回false。

参数:

参数名称 参数说明
事件 指示有关触摸事件的信息。

返回值:

如果处理了事件,则返回 true;否则,返回 false。否则返回 false。

方向改变

受保护的 void onOrientationChanged((AbilityInfo.DisplayOrientation displayOrientation)

当屏幕的显示方向改变时回调。

当显示方向改变时,您可以重写此方法以实现您的逻辑。默认情况下,更改显示方向时不执行任何操作。

参数:

参数名称 参数说明
displayOrientation 指示新的显示方向。支持以下值:AbilityInfo.DisplayOrientation#LANDSCAPEAbilityInfo.DisplayOrientation#PORTRAITAbilityInfo.DisplayOrientation#FOLLOWRECENT 和 AbilityInfo.DisplayOrientation#UNSPECIFIED

在内存级别

onMemoryLevel 上的 public void(int 级别)

在系统确定修整内存时调用,例如,当该功能在后台运行并且没有足够的内存来运行尽可能多的后台进程时调用。

参数:

参数名称 参数说明
水平 指示内存调整级别,该级别显示当前内存使用状况。这些值及其各自的含义如下:5:应用程序正常运行,不会被杀死,但是设备的内存略微不足。系统可能会根据最近最少使用(LRU)列表开始终止进程。10:应用程序正常运行,不会被杀死,但是设备的内存极低。您的应用程序应释放一些不必要的资源以提高系统性能,从而相应地提高应用程序性能。15:应用程序正常运行,但是系统已根据 LRU 列表终止了大多数缓存的进程。在这种情况下,您的应用程序应释放尽可能多的不必要资源。否则,系统可能会继续终止所有缓存的进程,并开始终止某些应保持运行的进程,例如,在后台运行的服务。20:例如,由于用户触摸了设备上的 Home 键,因此应用程序 UI 被隐藏。您的应用程序应释放分配给 UI 显示的资源,以释放内存。40:设备的内存不足,并且您的应用程序位于 LRU 列表的顶部。该系统不太可能杀死您的应用程序。为了使您的应用程序进程在缓存中保留更长的时间,您的应用程序应通过释放一些易于恢复的资源来增加可用的系统内存。这样,您的应用程序可以平稳地返回到前台,而不必重新启动。60:设备的内存消耗极低,您的应用程序位于 LRU 列表的中间。如果没有更多的内存释放,您的应用程序可能会在以后被杀死。80:设备的内存消耗极低,您的应用程序位于 LRU 列表的末尾。该系统最有可能首先杀死您的应用程序。在这种情况下,您的应用程序应释放所有可以释放的资源。

在重新连接上

public void onReconnect (Intent intent)

当新的客户端之前与之断开所有连接后,新客户端尝试连接至服务Ability时调用。

服务Ability必须已启动,但没有被破坏,也就是说,startAbility(ohos.aafwk.content.Intent)已被调用但stopAbility(ohos.aafwk.content.Intent)也没有。

参数:

参数名称 参数说明
Intent 指示正在连接服务Ability的Intent。

Ability结果

受保护的无效 onAbilityResult(int requestCode,int resultCode,Intent resultData)

在调用 startAbilityForResult(ohos.aafwk.content.Intent,int)以启动功能并返回结果时调用。

仅在 Page 功能上调用此方法。您可以启动一项新功能来执行一些计算,并使用 setResult(int,ohos.aafwk.content.Intent)返回计算结果。然后,系统回调当前方法以使用返回的数据执行其自己的逻辑。

参数:

参数名称 参数说明
请求代码 指示功能启动后返回的请求代码。您可以定义请求代码以标识Ability返回的结果。取值范围是 0〜65535。
resultCode 指示该功能启动后返回的结果代码。您可以定义结果代码以识别错误。
resultData 指示该功能启动后返回的数据。您可以定义返回的数据。该值可以为空。

在创建表单上

受保护的 AbilityForm onCreateForm()

调用以返回 AbilityForm 对象。

如果 Page 功能需要在其他功能中显示为 AbilityForm,请重写此方法以返回 AbilityForm 对象。默认情况下,返回 null。

返回值:

返回 AbilityForm 对象。

在保存Ability状态

public void onSaveAbilityState((PacMap outState)

保存此功能的临时数据和状态。此方法应通过 Page 功能实现。

当系统确定在意外情况下(例如,当屏幕方向更改或用户触摸 Home 键时)该功能可能被破坏时,将调用此方法。通常,此方法仅用于保存临时状态。

参数:

参数名称 参数说明
outState 指示用于存储用户数据和状态的PacMap对象。此参数不能为空。

恢复Ability状态

public void onRestoreAbilityState(PacMap inState)

由系统恢复Ability的数据和状态。此方法应通过Page功能实现。

如果某个功能由于资源回收而在特定时间被破坏或被意外破坏,则调用此方法,并调用onSaveAbilityState(ohos.utils.PacMap)方法以保存其用户数据和状态。通常,此方法在onStart(ohos.aafwk.content.Intent)方法之后调用。

参数:

参数名称 参数说明
州内 指示用于存储数据和状态的PacMap对象。此参数不能为空。

用户结果中的请求权限

public void onRequestPermissionsFromUserResult(int requestCode, String[] permissions,int [] grantResults)

Called back after permissions are requested by using AbilityContext.requestPermissionsFromUser(java.lang.String[],int).

参数:

参数名称 参数说明
请求代码 指示从 AbilityContext.requestPermissionsFromUser(java.lang.String [],int)传递给此方法的请求代码。
权限 指示使用 AbilityContext.requestPermissionsFromUser(java.lang.String [],int)请求的权限列表。此参数不能为空。
授予结果 指示使用 AbilityContext.requestPermissionsFromUser(java.lang.String [],int)请求的相应权限的授予结果。值 0 表示授予权限,值 -1 表示不授予权限。

在新说明中

public CharSequence 的onNewDescription()

在此功能之前调用的是为该功能生成新描述的背景。此方法旨在将要显示的Ability当前状态的文本描述返回给用户。

返回值:

返回当前用户行为的简短描述。

onLeaveForeground

public void onLeaveForeground()

当此功能由于用户操作(例如,用户触摸Home键)而即将离开前台并进入背景时调用。

事件派遣

public void onEventDispatch()

每次为此功能调度按键,触摸或轨迹球事件时调用。如果您想知道用户在此功能运行时以某种方式与设备进行了交互,则可以覆盖此回调方法。此方法与 onLeaveForeground() 一起 设计用于帮助功能智能地管理状态栏通知。具体来说,它们帮助功能确定何时取消通知。

启动Ability

public final void startAbility((Intent intent)throw IllegalArgumentExceptionIllegalStateException

开始一项新技能。

页面或服务Ability使用此方法来启动特定Ability。系统根据 intent 参数的值从已安装的Ability中定位目标Ability,然后启动它。您可以指定使用 intent 参数开始的功能。

通过添加 Intent#FLAG_START_FOREGROUND_ABILITY 的标志,即使没有启动托管该功能的应用程序,也可以启动它 参数:

参数名称 参数说明
Intent 指示启动的Ability。

Throws:

Throw名称 Throw说明
IllegalArgumentException 如果输入参数为 null,则throw此异常。
IllegalStateException 如果功能未初始化,则throw此异常。

启动Ability

public final void startAbility(Intent intent,AbilityOptions选项)throw IllegalArgumentExceptionIllegalStateException

从选项开始新技能。

Page 功能使用此方法来启动具有共享组件转换的功能。

参数:

参数名称 参数说明
Intent 指示启动的Ability。
选项 Ability选项参数,可以转移共享组件进行过渡。

throw:

throw名称 throw说明
IllegalArgumentException 如果输入参数为 null,则throw此异常。
IllegalStateException 如果功能未初始化,则throw此异常。

也可以看看:

startAbility(Intent)

开始结果的Ability

public final void startAbilityForResult(Intent intent,int requestCode)throw IllegalArgumentExceptionIllegalStateException

启动一个异能并在该异能被销毁时返回执行结果。

销毁该Ability时,将调用 onAbilityResult(int,int,ohos.aafwk.content.Intent),并将返回的 requestCode 传输到当前方法。给定的 requestCode 是自定义的,不能为负数。

参数:

参数名称 参数说明
Intent 指示启动的Ability。
请求代码 指示功能启动后返回的请求代码。您可以定义请求代码以标识Ability返回的结果。取值范围是 0〜65535。

throw:

throw名称 throw说明
IllegalArgumentException 如果输入参数无效,则throw此异常。
IllegalStateException 如果功能未初始化,则throw此异常。

也可以看看:

startAbility(Intent),onAbilityResult(int,int,Intent),setResult(int,Intent)

设定结果

public final void setResult(int resultCode,Intent resultData)

设置此 Page 功能返回给调用方的结果代码和数据。

当 Page 功能被销毁时,调用方将覆盖 AbilitySlice#onAbilityResult(int,int,Intent) 方法,以接收当前方法中的ResultSet。仅在功能已初始化后才能调用此方法。

参数:

参数名称 参数说明
resultCode 指示销毁该Ability后返回的结果代码。您可以定义结果代码以识别错误。
resultData 指示销毁该Ability后返回的数据。您可以定义返回的数据。此参数可以为空。

throw:

throw名称 throw说明
IllegalStateException 如果此Ability不是 Page Ability或该Ability未初始化,则throw此异常。

终止Ability

公共最终无效 ()

破坏此页面或服务功能。

页面或服务功能执行完所有操作后,便可以使用此方法破坏自身以释放内存。仅在功能被初始化后才能调用此方法。

指定者:

接口 ContextterminateAbility

覆写:

terminateAbility 类 AbilityContext

也可以看看:

Context.terminateAbility()

停止Ability

public final boolean stopAbility(Intent intent)

摧毁另一种服务Ability。

指定者:

接口Context stopAbility

覆写:

stopAbilityAbilityContext

参数:

参数名称 参数说明
Intent 指示有关服务Ability的信息。

返回值:

如果服务Ability被破坏,则返回 true;否则,返回 true。否则返回 false。

也可以看看:

Context.stopAbility(Intent)

设定主要路线

公共最终无效 setMainRoute(String条目)throw IllegalStateException

设置此功能的主要路线。

您可以调用此方法来设置功能的默认路由,即要显示的 AbilitySlice。此方法只能用于Page功能。

注意:如果未在 onStart(ohos.aafwk.content.Intent)中设置默认路由,则启动将失败。

参数:

参数名称 参数说明
条目 指示主要条目,它是您的 AbilitySlice 类的完全限定名称。

throw:

throw名称 throw说明
IllegalStateException 如果此Ability不是 Page Ability或未初始化,则throw此异常。

添加动作路线

public final void addActionRoute(String操作,String入口)throw IllegalStateException

将动作绑定到 AbilitySlice

通过绑定动作,可以在 Intent 中设置不同的动作参数以显示不同的初始页面。您必须在配置文件中注册操作。

参数:

参数名称 参数说明
行动 指示要绑定的动作。
条目 指示条目,它是您的 AbilitySlice 类的完全限定名称。

throw:

throw名称 throw说明
IllegalStateException 如果此Ability不是 Page Ability或未初始化,则throw此异常。

设置窗口背景颜色

public final void setWindowBackgroundColor(int red,int green,int blue)throw IllegalStateException

在 RGB 颜色模式下设置Window的背景色。

参数:

参数名称 参数说明
取值范围是 0〜255。
绿色 取值范围是 0〜255。
蓝色 取值范围是 0〜255。

throw:

throw名称 throw说明
IllegalStateException 如果功能未初始化,则throw此异常。

保持后台运行

public final void keepBackgroundRunning(int id,NotificationRequest notificationRequest)

在后台保留此服务功能并显示通知栏。

要使用此方法,您需要从系统请求 ohos.permission.KEEP_BACKGROUND_RUNNING 权限。ohos.permission.KEEP_BACKGROUND_RUNNING 权限属于正常级别。

调用 onStart(ohos.aafwk.content.Intent)方法后,只能由服务Ability调用此方法。

参数:

参数名称 参数说明
ID 标识通知栏信息。
notificationRequest 指示 NotificationRequest 实例,其中包含用于显示通知栏的信息。

throw:

throw名称 throw说明
IllegalStateException 如果此Ability不是服务Ability或未初始化,则throw此异常。
IllegalArgumentException 在传递的 NotificationRequest 实例中引发此异常为 null。
ProfileMissingConfigException 如果未在配置文件中设置 param backgroundModes,则throw此异常。

取消后台运行

public final void cancelBackgroundRunning()throw IllegalStateException

取消此功能的后台运行以释放系统内存。

调用 onStop()方法时,只能由 Service 技能调用此方法。

throw:

throw名称 throw说明
IllegalStateException 如果此Ability不是服务Ability或未初始化,则throw此异常。

继续Ability

公共最终无效的 continueAbility()throw IllegalStateExceptionUnsupportedOperationException

将此功能迁移到同一分布式网络上的另一台设备。

如果有多个候选设备,将显示一个弹出窗口供用户选择所需的设备。

迁移功能及其功能切片必须实现 IAbilityContinuation 接口。否则,将引发异常,表明该功能不支持迁移。

throw:

throw名称 throw 说明
IllegalStateException 如果此Ability未初始化或处于不允许此操作的状态(例如正在迁移),则 throw 此异常。
UnsupportedOperationException 如果此功能未实现 IAbilityContinuation 接口,则throw此异常。

继续Ability

公共最终无效的 continueAbility((String deviceId)throw IllegalStateExceptionUnsupportedOperationException

将此功能迁移到同一分布式网络上的给定设备。

迁移功能及其功能切片必须实现 IAbilityContinuation 接口。否则,将引发异常,表明该功能不支持迁移。

参数:

参数名称 参数说明
设备编号 指示此功能将迁移到的目标设备的 ID。如果此参数为 null,则此方法与 continueAbility()具有相同的效果。

throw:

炒米粉名称 throw说明
IllegalStateException 如果此Ability未初始化或处于不允许此操作的状态(例如正在迁移),则throw此异常。
UnsupportedOperationException 如果此功能未实现 IAbilityContinuation 接口,则throw此异常。

连续Ability可逆

公共最终无效的 continueAbilityReversible()引发 IllegalStateExceptionUnsupportedOperationException

以可逆的方式将此功能迁移到同一分布式网络上的另一台设备,该功能允许将该功能通过reverseContinueAbility()迁移回本地设备 。

如果有多个候选设备,将显示一个弹出窗口供用户选择所需的设备。

迁移功能及其功能切片必须实现 IAbilityContinuation 接口。否则,将引发异常,表明该功能不支持迁移。

throw:

throw名称 throw说明
IllegalStateException 如果此Ability未初始化或处于不允许此操作的状态(例如正在迁移),则throw此异常。
UnsupportedOperationException 如果此功能未实现 IAbilityContinuation 接口,则throw此异常。

连续Ability可逆

公共最终无效的 continueAbilityReversible(String deviceId)throw IllegalStateExceptionUnsupportedOperationException

以可逆的方式将此功能迁移到同一分布式网络上的给定设备,该功能允许将该功能通过 reverseContinueAbility()迁移回本地设备 。

迁移功能及其功能切片必须实现 IAbilityContinuation 接口。否则,将引发异常,表明该功能不支持迁移。

参数:

参数名称 参数说明
设备编号 指示此功能将迁移到的目标设备的ID。如果此参数为null,则此方法与 continueAbilityReversible()具有相同的效果。

throw:

throw名称 throw说明
IllegalStateException 如果此Ability未初始化或处于不允许此操作的状态(例如正在迁移),则throw此异常。
UnsupportedOperationException 如果此功能未实现 IAbilityContinuation 接口,则throw此异常。

反向连续Ability

public final boolean reverseContinueAbility()throw IllegalStateExceptionUnsupportedOperationException

将此功能从同一分布式网络上的另一台设备迁移回本地设备。

返回值:

如果迁移请求成功,则返回 true;否则,返回 true。否则返回 false。

throw:

throw名称 throw说明
IllegalStateException 如果此功能未参与可逆迁移过程,或者处于不允许此操作的状态(例如正在将其迁移回),则throw此异常。
UnsupportedOperationException 如果此功能未实现 IAbilityContinuation 接口,则throw此异常。

获取延续状态

公共最终 ContinuationState getContinuationState()throw UnsupportedOperationException

获得此功能的迁移状态。

返回值:

返回迁移状态。

throw:

throw名称 throw说明
UnsupportedOperationException 如果此功能未实现 IAbilityContinuation 接口,则throw此异常。

获取原始设备ID

公共最终String getOriginalDeviceId()throw UnsupportedOperationException

获取从中迁移此功能的源设备的 ID。

启动可逆迁移过程之后,可以在目标远程设备上调用此方法以获取源设备 ID,该过程允许将Ability从目标设备迁移回源设备。

返回值:

返回源设备 ID。

throw:

throw名称 throw说明
UnsupportedOperationException 如果此功能未实现 IAbilityContinuation 接口,则throw此异常。

设置Ability切片动画师

公共最终无效 setAbilitySliceAnimator(AbilitySliceAnimator skillSliceAnimator)引发 IllegalStateException

在当前Ability的 AbilitySlice 实例之间设置过渡动画 。

您可以使用 AbilitySliceAnimator 类来定义动画属性。当前,仅支持翻译。稍后将支持旋转,渐变和缩放操作。可以通过调用功能的 onStart(ohos.aafwk.content.Intent)方法来设置属性。

参数:

参数名称 参数说明
abilitiesSliceAnimator 指示动画属性,例如平移,旋转或 Alpha。如果此参数为 null,则禁用过渡动画。

throw:

throw名称 throw说明
IllegalStateException 如果功能未初始化,则throw此异常。

获取根用户界面内容

public ComponentContainer getRootUIContent()

获取技能或顶级技能切片 ui 内容的根组件。

返回值:

Ability或最高Ability切片的容器根 ui 内容

获取输入转换

公共Transition getEnterTransition()

获取Ability输入过渡类型。

返回值:

Ability进入过渡

设置输入过渡

public void setEnterTransition(Transition transition)

设置Ability输入过渡类型。

参数:

参数名称 参数说明
过渡 Ability进入过渡

获得退货转换

public Transition getReturnTransition()

获取Ability返回过渡类型。

返回值:

Ability回归过渡

设置返回过渡

public void setReturnTransition(Transition transition)

设置Ability返回过渡类型。

参数:

参数名称 参数说明
过渡 Ability回归过渡

正在终止

公共布尔 isTerminate()

检查当前Ability是否被破坏。

如果您在某异能上调用了 terminateAbility() 或其他人要求破坏该异能,则该异能将被破坏。

返回值:

如果当前Ability被破坏,则返回 true;否则,返回 true。否则返回 false。

也可以看看:

TerminateAbility()

设定意图

public void setIntent (Intent intent)

设置可以通过调用 getIntent()获得的 Intent 对象 。

此方法不复制给定的 Intent 对象,而是保留对给定对象的引用并直接对其生效。此方法通常与onNewIntent(ohos.aafwk.content.Intent)一起使用。

参数:

参数名称 参数说明
Intent 指示要设置的 Intent 对象。

获得意图

public Intent getIntent()

获取启动此功能的 Intent 对象。

返回值:

返回启动此功能的 Intent 对象。

具有窗口焦点

公共布尔 hasWindowFocus()

检查此功能的主Window是否具有Window焦点。

返回值:

如果此Ability当前具有Window焦点,则返回 true;否则返回 true。否则返回 false。

获取当前焦点

公共Component getCurrentFocus()

获取当前具有Window焦点的组件。

返回值:

返回找到Window焦点的 Object对象(如果有);否则返回 null。

在窗口焦点上已更改

public void onWindowFocusChanged(boolean hasFocus)

当此Ability获得或失去Window焦点时调用。

焦点状态是指独立于Ability生命周期状态的全局状态。尽管功能的生命周期状态更改可能导致焦点更改(例如onStop()可能导致失去Window焦点的功能),但是此回调与其他生命周期回调(例如 onBackground())之间没有特定的顺序。

通常,前景中的功能将具有Window焦点。显示另一个对话框或弹出Window时,该功能将失去焦点。当显示系统级Window(例如状态栏或系统警报)时,该功能也将失去焦点。

参数:

参数名称 参数说明
hasFocus 指定此技能是否具有焦点。

将滑动设置为关闭

public boolean setSwipeToDismiss(boolean isEnabled)

设置一个Window及其功能是否在滑动时完成。

参数:

参数名称 参数说明
isEnabled 指定在滑动时是否应关闭Window。

返回值:

如果设置成功,则返回 true;否则,返回 true。否则返回 false。

规范化

public Uri normalizeUri(Uri uri)

通过支持此数据功能对 Uri 进行规范化将引用数据功能的给定 uri 转换为规范化 URI。标准化的 URI 可以在设备之间使用,持久化,备份和还原。即使上下文已更改,它也可以引用“数据”功能中的同一项目。

如果为数据功能实现 URI 规范化,则还必须实现 denormalizeUri(ohos.utils.net.Uri) 以启用URI规范化。启用此功能后,传递给在 Data 功能上调用的任何方法的 URI 必须要求规范化验证和非规范化。

此方法的默认实现返回 null,指示此 Data 功能不支持 URI 规范化。

参数:

参数名称 参数说明
uri 指示要规范化的 Uri 对象。

返回值:

如果数据功能支持 URI 标准化,则返回标准化的 Uri 对象;否则返回 null。

也可以看看:

denormalizeUri(ohos.utils.net.Uri)

非规范化

public Uri denormalizeUri(Uri uri)

将 normalizeUri(ohos.utils.net.Uri)生成的给定归一化 uri 转换为非归一化的 uri 。此方法的默认实现返回传递给它的原始 URI。

参数:

参数名称 参数说明
uri uri 指示要规范化的 Uri 对象。

返回值:

如果非规范化成功,则返回非规范化的 Uri 对象;如果没有任何关系,则返回传递给此方法的原始 Uri;如果在当前环境中找不到由原始 Uri 标识的数据,则返回 null。

也可以看看:

normalizeUri(ohos.utils.net.Uri)

调度辅助功能事件信息

public void dispatchAccessibilityEventInfo (AccessibilityEventInfo info)

在此功能的组件上发生可访问性事件时调用。您可以重写此方法以将可访问性事件信息添加到组件。此方法的默认实现将发送此功能的类名称以及该功能所属的捆绑软件的名称。

参数:

参数名称 参数说明
信息 指示要添加的辅助功能事件信息。