新聞中心
Ability是 HarmonyOS 應用程序可以提供的功能的抽象。HarmonyOS 應用程序的Ability分為兩種類型:特征Ability和粒子Ability。特征Ability代表具有 UI 的功能,并旨在與用戶進行交互。粒子Ability表示沒有 UI 的Ability,并且主要用于提供對 FA 的支持,例如,提供計算功能作為后臺服務或提供數(shù)據(jù)訪問功能作為數(shù)據(jù)存儲庫。兩種功能為您提供了不同的模板,以供您實現(xiàn)不同的功能。當前,HarmonyOS 提供以下類型的Ability模板:

成都創(chuàng)新互聯(lián)從2013年成立,先為金堂縣等服務建站,金堂縣等地企業(yè),進行企業(yè)商務咨詢服務。為金堂縣企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務解決您的所有建站問題。
注意:在下面的描述中,頁面,服務或數(shù)據(jù)功能表示使用相應模板的功能,而單獨的功能表示使用任何類型的模板的功能。
- 頁面:顯示 UI 的功能。UI 通過 AbilitySlice 呈現(xiàn)。您必須重寫 onStart(ohos.aafwk.content.Intent)方法,并使用 setMainRoute(java.lang.String) 和addActionRoute(java.lang.String,java.lang.String)方法來配置 Page 功能的條目。
- 服務:一種在后臺運行且沒有 UI 的功能。它用于開發(fā)始終在后臺運行或與其他功能連接的服務。當服務Ability與其他Ability連接時,將返回一個遠程對象,您可以使用該遠程對象來調(diào)用該服務Ability提供的功能。
- 數(shù)據(jù):一種用于操作數(shù)據(jù)且沒有 UI 的功能。它提供了用于插入,刪除,更新和查詢數(shù)據(jù)以及打開文件的方法。您必須實現(xiàn)這些方法。
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
應用程序文件結(jié)構(gòu)的說明如下:
該條目存儲應用程序的代碼,資源文件和配置文件。文件夾名稱是可編輯的。
entry / libs存儲第三方庫文件。創(chuàng)建項目時,IDE 將自動生成此目錄。
entry / src / main / java用于代碼開發(fā)。您可以根據(jù)需要在此目錄中更改文件名。創(chuàng)建項目時,IDE 將自動生成此目錄。
entry / src / main / resources / base / media為您的應用程序存儲 PNG 和 JPG 圖像文件。創(chuàng)建項目時,IDE 將自動生成此目錄。
entry / src / main / resources / base / element存儲用于讀取文本資源的資源文件。創(chuàng)建項目時,IDE 將自動生成此目錄。
該入口/ src 目錄/主/ config.json文件位于主根目錄。該文件包含有關應用程序的配置信息。系統(tǒng)運行該應用程序,并基于此文件的內(nèi)容在 UI 上顯示內(nèi)容。創(chuàng)建項目時,IDE 將自動生成此文件。
要開發(fā)新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使用的模板的類型,其值頁面,服務或提供者分別指示頁面,服務或數(shù)據(jù)模板。必須指定類型標簽。
- 名稱標簽表示Ability的名稱,必須指定。
- 您可以保留其他標簽的默認值。
Ability生命周期
作為應用程序的基本單元,功能具有以下四個生命周期狀態(tài):
- 初始:該異能已加載到內(nèi)存中但未運行。這是所有Ability的初始狀態(tài)。
- 不活躍:該功能已加載并執(zhí)行,但不是交互式的。通常,在Ability更改為ACTIVE或Background之前處于中間狀態(tài)。在這種狀態(tài)下,UI 可能可見,但無法接收輸入事件。
- 活動:該功能可見且具有交互性。認為該Ability具有焦點。
- 背景:這種Ability是看不見的。如果系統(tǒng)內(nèi)存不足,則會首先破壞此狀態(tài)下的功能。
下圖顯示了完整的Ability生命周期。每個狀態(tài)轉(zhuǎn)換都會執(zhí)行一個特定的回調(diào)。您可以覆蓋回調(diào)方法。
注意:所有頁面功能都必須實現(xiàn) onStart(ohos.aafwk.content.Intent) 來設置其 UI。要覆蓋生命周期回調(diào)方法,必須首先調(diào)用與父類相對應的回調(diào)方法,例如 super.onStart()。狀態(tài)轉(zhuǎn)換在主線程上實現(xiàn)。因此,建議您在生命周期回調(diào)中執(zhí)行簡短邏輯,以防止該功能的主線程被阻塞。
以下是該功能的所有生命周期回調(diào)方法:
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();
}有關生命周期回調(diào)的詳細信息,請參見 AbilitySlice。
起始Ability
這個起動性(ohos.aafwk.content.Intent)方法用于啟動一個新的Ability,其被放置在Ability堆棧的頂部。它使用參數(shù)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。它具有兩個參數(shù):Intent 和 IAbilityConnection。Intent 提供有關目標服務連接Ability的信息,IAbilityConnection 是一個回調(diào)對象,用于通知您連接結(jié)果(成功或失敗)。
與connectAbility(ohos.aafwk.content.Intent,ohos.aafwk.ability.IAbilityConnection)相比,disconnectAbility(ohos.aafwk.ability.IAbilityConnection)方法用于與已連接的服務Ability斷開連接。
對于服務功能,您可以重寫 onConnect(ohos.aafwk.content.Intent)方法以提供一個RemoteObject進行調(diào)用。默認情況下,返回null。
protected IRemoteObject onConnect(Intent intent) {
return null;
}
嵌套類摘要
| 修飾符和類型 | 類 | 描述 |
|---|---|---|
| 靜態(tài)類 | Ability.LayoutParamsHelper | 幫助您使用 Intent 設置應用程序啟動Window的布局參數(shù)。 |
| 靜態(tài)類 | Ability.WindowAttributeHelper | 幫助您使用 Intent 設置當前應用程序的Window屬性。 |
領域摘要
| 從接口 ohos.app 繼承的字段。CONTEXT |
|---|
| CONTEXT_IGNORE_SECURITY,CONTEXT_INCLUDE_CODE,CONTEXT_RESOUCE_ONLY,CONTEXT_RESTRICTED,MODE_APPEND,MODE_PRIVATE |
構(gòu)造器摘要
| 建設者 | 描述 |
|---|---|
| Ability() |
方法總結(jié)
| 修飾符和類型 | 方法 | 描述 |
|---|---|---|
| void | addActionRoute(String操作,String輸入) | 將動作綁定到 AbilitySlice。 |
| 整型 | batchInsert(Uri uri,ValuesBucket []值) | 將多個數(shù)據(jù)記錄插入數(shù)據(jù)庫。 |
| PacMap | 調(diào)用(String方法,String arg,PacMap 附加功能) | 在此數(shù)據(jù)功能中定義一個方法(實現(xiàn)取決于子類)。 |
| void | cancelBackgroundRunning() | 取消此功能的后臺運行以釋放系統(tǒng)內(nèi)存。 |
| 布爾值 | connectAbility(Intent intent,IAbilityConnection conn) | 將Ability連接到服務Ability。 |
| void | continueAbility() | 將此功能遷移到同一分布式網(wǎng)絡上的另一臺設備。 |
| void | continueAbility(String deviceId) | 將此功能遷移到同一分布式網(wǎng)絡上的給定設備。 |
| void | continueAbilityReversible() | 以可逆的方式將此功能遷移到同一分布式網(wǎng)絡上的另一臺設備,該功能允許將該功能通過reverseContinueAbility()遷移回本地設備。 |
| void | continueAbilityReversible(String deviceId) | 以可逆的方式將此功能遷移到同一分布式網(wǎng)絡上的給定設備,該功能允許將該功能通過 reverseContinueAbility()遷移回本地設備。 |
| 整型 | 刪除(Uri uri,DataAbilityPredicates 謂詞) | 刪除一個或多個數(shù)據(jù)記錄。 |
| Uri | denormalizeUri(Uri uri) | 將 normalizeUri(ohos.utils.net.Uri)生成的給定歸一化 uri 轉(zhuǎn)換為非歸一化的 uri 。 |
| void | 斷開連接Ability(IAbilityConnection conn) | 與 connectAbility(ohos.aafwk.content.Intent,ohos.aafwk.ability.IAbilityConnection) 相比,斷開服務Ability與服務Ability的連接。 |
| void | dispatchAccessibilityEventInfo(AccessibilityEventInfo 信息) | 在此功能的組件上發(fā)生可訪問性事件時調(diào)用。 |
| DataAbilityResult [] | executeBatch (ArrayList < DataAbilityOperation >操作) | 在數(shù)據(jù)庫上執(zhí)行批處理操作。 |
| Component | findComponentById(int resID) | 根據(jù)資源 ID 在 XML 文件中查找組件。 |
| AbilityPackage | getAbilityPackage(AbilityInfo skillInfo) | 獲取此功能所屬的單例 AbilityPackage 對象。 |
| Object | getAVController() | 獲得Ability的Window媒體控制器。 |
| ContinuationState | getContinuationState() | 獲得此功能的遷移狀態(tài)。 |
| Component | getCurrentFocus() | 獲取當前具有Window焦點的組件。 |
| Transition | getEnterTransition() | 獲取Ability輸入過渡類型。 |
| String [] | getFileTypes(Uri uri,String mimeTypeFilter) | 獲取文件的 MIME 類型。 |
| Intent | getIntent() | 獲取啟動此功能的 Intent 對象。 |
| WindowManager.LayoutConfig | getLayoutParams() | 獲取Ability的Window布局參數(shù)。 |
| Lifecycle | getLifecycle() | 獲取當前Ability的Lifecycle對象。 |
| String | getOriginalDeviceId() | 獲取從中遷移此功能的源設備的 ID。 |
| Transition | getReturnTransition() | 獲取Ability返回過渡類型。 |
| ComponentContainer | getRootUIContent() | 獲取技能或頂級技能切片 ui 內(nèi)容的根組件。 |
| String | getType(Uri uri) | 獲取與“數(shù)據(jù)”功能的 URI 指定的數(shù)據(jù)匹配的 MIME 類型。 |
| Window | getWindow() | 獲取與當前Ability對應的Window。 |
| 布爾值 | hasWindowFocus() | 檢查此功能的主Window是否具有Window焦點。 |
| 整型 | insert(Uri uri,ValuesBucket值) | 將數(shù)據(jù)記錄插入數(shù)據(jù)庫。 |
| 布爾值 | isTerminate() | 檢查當前Ability是否被破壞。 |
| void | keepBackgroundRunning(int id,NotificationRequest notificationRequest) | 在后臺保留此服務功能并顯示通知欄。 |
| Uri | normalizeUri(Uri uri) | 通過支持此數(shù)據(jù)功能對 Uri 進行規(guī)范化將引用數(shù)據(jù)功能的給定 uri 轉(zhuǎn)換為規(guī)范化 URI。 |
| protected void | onAbilityResult(int requestCode,int resultCode,Intent resultData) | 在調(diào)用 startAbilityForResult(ohos.aafwk.content.Intent,int)以啟動功能并返回結(jié)果時調(diào)用。 |
| protected void | onActive() | 回叫時的Ability進入 ACTIVE 狀態(tài)。 |
| protected void | onBackground() | 技能進入背景狀態(tài)時回調(diào)。 |
| protected void | onBackPressed() | 當按下返回鍵時回叫。 |
| protected void | onCommand(Intent intent,boolean restart) | 不推薦使用。 |
| protected void | onCommand(Intent intent,boolean restart,int startId) | 服務啟動時回叫。 |
| void | onConfigurationUpdated(Configuration配置) | 在系統(tǒng)配置更新時調(diào)用。 |
| protected IRemoteObject | 為onConnect(Intent intent ) | 當服務Ability首次與該Ability相關聯(lián)時回調(diào)。 |
| protectedAbilityForm | onCreateForm() | 調(diào)用以返回 AbilityForm 對象。 |
| protected void | onDisconnect(Intent intent ) | 當與服務Ability相關的所有Ability都斷開連接時回調(diào)。 |
| void | onEventDispatch() | 每次為此功能調(diào)度按鍵,觸摸或軌跡球事件時調(diào)用。 |
| protected void | onForeground(Intent intent ) | 當技能的狀態(tài)從背景變?yōu)椴?strong>活躍時回調(diào)。 |
| protected void | onInactive() | 當某個異能進入 INACTIVE 狀態(tài)時被回調(diào)(此狀態(tài)下的異能不是交互式的,可能會變?yōu)?strong>Background 或 ACTIVE 狀態(tài))。 |
| 布爾值 | onKeyDown(int keyCode,KeyEvent keyEvent) | 按下鍵時調(diào)用。 |
| 布爾值 | onKeyUp(int keyCode,KeyEvent keyEvent) | 釋放鍵時調(diào)用。 |
| void | onLeaveForeground() | 當此功能由于用戶操作(例如,用戶觸摸 Home 鍵)而即將離開前臺并進入背景時調(diào)用。 |
| void | onMemoryLevel(int級別) | 在系統(tǒng)確定修整內(nèi)存時調(diào)用,例如,當該功能在后臺運行并且沒有足夠的內(nèi)存來運行盡可能多的后臺進程時調(diào)用。 |
| CharSequence | onNewDescription() | 在此功能之前調(diào)用的是為該功能生成新描述的背景。 |
| protected void | onNewIntent(Intent Intent) | 在功能的啟動模式設置為 singleInstance 時調(diào)用。 |
| protected void | onOrientationChanged(AbilityInfo.DisplayOrientation displayOrientation) | 當屏幕的顯示方向改變時回調(diào)。 |
| protected void | onPostActive() | 在調(diào)用 onActive()之后完全激活該功能時調(diào)用。 |
| protected void | onPostStart(PacMap pacMap) | 通過調(diào)用 onStart(ohos.aafwk.content.Intent)和onRestoreAbilityState(ohos.utils.PacMap)啟動功能時調(diào)用。 |
| void | onReconnect(Intent Intent) | 當新的客戶端之前與之斷開所有連接后,新客戶端嘗試連接至服務Ability時調(diào)用。 |
| void | onRequestPermissionsFromUserResult(int requestCode,String []權(quán)限,int [] grantResults) | 使用AbilityContext.requestPermissionsFromUser(java.lang.String [],int)請求權(quán)限后回調(diào)。 |
| void | onRestoreAbilityState(PacMap inState) | 由系統(tǒng)恢復Ability的數(shù)據(jù)和狀態(tài)。 |
| void | onSaveAbilityState(PacMap outState) | 保存此功能的臨時數(shù)據(jù)和狀態(tài)。 |
| protected void | 在onStart(Intent Intent) | 在一項功能開始初始化時回調(diào)(在該功能的整個生命周期中只能調(diào)用一次)。 |
| protected void | onStop() | 在消滅異能之前回叫。 |
| protected boolean | onTouchEvent(TouchEvent事件) | 在將觸摸事件調(diào)度到此功能時調(diào)用。 |
| void | onWindowFocusChanged(boolean hasFocus) | 當此Ability獲得或失去Window焦點時調(diào)用。 |
| FileDescriptor | openFile(Uri uri,String模式) | 打開一個文件。 |
| RawFileDescriptor | openRawFile(Uri uri,String模式) | 打開一個原始文件。 |
| ResultSet | 查詢(Uri uri,String DataAbilityPredicates謂詞) | 查詢數(shù)據(jù)庫中的一個或多個數(shù)據(jù)記錄。 |
| 布爾值 | reverseContinueAbility() | 將此功能從同一分布式網(wǎng)絡上的另一臺設備遷移回本地設備。 |
| void | setAbilitySliceAnimator(AbilitySliceAnimator skillSliceAnimator) | 在當前Ability的 AbilitySlice 實例之間設置過渡動畫。 |
| void | setAVController(Object控制器) | 設置Ability的Window媒體控制器。包含Window媒體信息的媒體控制器。 |
| void | setEnterTransition(Transition過渡) | 設置Ability輸入過渡類型。 |
| void | setIntent(Intent Intent) | 設置可以通過調(diào)用 getIntent() 獲得的 Intent 對象。 |
| void | setIsAmbientMode(boolean isEnabled) | 設置Window的輸入 AOD 模式 |
| void | setLayoutParams(WindowManager.LayoutConfig參數(shù)) | 設置功能的Window布局參數(shù)。 |
| void | setMainRoute(String入口) | 設置此功能的主要路線。 |
| void | setResult(int resultCode,Intent resultData) | 設置此 Page 功能返回給調(diào)用方的結(jié)果代碼和數(shù)據(jù)。 |
| 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) | 啟動一個異能并在該異能被銷毀時返回執(zhí)行結(jié)果。 |
| 布爾值 | stopAbility(IntentIntent) | 摧毀另一種服務Ability。 |
| void | 終止Ability() | 破壞此頁面或服務功能。 |
| 整型 | 更新(Uri uri,ValuesBucket值,DataAbilityPredicates謂詞) | 更新數(shù)據(jù)庫中的一個或多個數(shù)據(jù)記錄。 |
| 從類 ohos.app 繼承的方法。AbilityContext |
|---|
| attachBaseContext,canRequestPermission,createBundleContext,createParallelTaskDispatcher,createSerialTaskDispatcher,DELETEFILE,getAbilityInfo,getAbilityManager,getApplicationContext,getApplicationInfo,getAppType,getBundleCodePath,getBundleManager,getBundleName,getBundleResourcePath,getCacheDir,getCallingAbility,getCallingBundle,getClassloader,getCodeCacheDir,的getContext,getDatabaseDir,getDataDir,GETDIR,getDisplayOrientation,getDistributedDir,getElementName,getExternalCacheDir,getExternalCacheDirs,getExternalFilesDir,getExternalFilesDirs,getExternalMediaDirs,getFilesDir,getGlobalTaskDispatcher,getLocalClassName,getMainTaskDispatcher,getNoBackupFilesDir,getPattern,getPreferencesDir,getProcessInfo,getResourceManager,getTheme,getUITaskDispatcher,初始化,isDeviceEncryptedStorage,isUpdatingConfigurations,requestPermissionsFromUser,重啟,setDisplayOrientation,setPattern,setShowOnLockScreen,setTheme,setTransitionAnimation,setWakeUpScreen,startAbilities,起動性能,switchToCredentialEncryptedStorageContext,switchToDeviceEncryptedStorageContext,terminateAbility,terminateAbilityResult,verifyCallingOrSelfPermission,verifyCallingPermission,verifyPermission,verifySelfPermission |
| 從類 java.lang 繼承的方法。Object |
|---|
| clone,equals,finalize,getClass,hashCode,notify,notifyAll,toString,wait,wait,wait |
構(gòu)造器詳細信息
Ability
公眾Ability
方法細節(jié)
獲得AbilityPackage
公共 AbilityPackage getAbilityPackage((AbilityInfo skillInfo)
獲取此功能所屬的單例 AbilityPackage 對象。
返回值:
返回此Ability所屬的單例 AbilityPackage 對象。
獲取窗口
公共Window getWindow()
獲取與當前Ability對應的Window。
您可以使用 Window 實例來控制Window的屬性,例如Window大小,位置和填充。
返回值:
返回與當前Ability相對應的Window。
設置UI內(nèi)容
公共最終無效 setUIContent(int layoutRes)
通過使用布局資源ID來擴大布局資源。
參數(shù):
| 參數(shù)名稱 | 參數(shù)說明 |
|---|---|
| layoutRes | 表示布局資源ID,不能為負數(shù)。 |
也可以看看:
setUIContent(ComponentContainer)
設置UI內(nèi)容
公共無效 setUIContent((ComponentContainer componentContainer)
通過使用 ComponentContainer來膨脹 UI 控件 。
您可以創(chuàng)建一個包含多個組件的ComponentContainer實例。
參數(shù):
| 參數(shù)名稱 | 參數(shù)說明 |
|---|---|
| componentContainer | 指示一組定制組件。 |
也可以看看:
setUIContent(int)
設置前級處理器
public void setAVController(Object控制器)
設置Ability的Window媒體控制器。包含Window媒體信息的媒體控制器。
參數(shù):
| 參數(shù)名稱 | 參數(shù)說明 |
|---|---|
| 控制者 | 指示包含Window媒體信息的對象。此參數(shù)不能為空。 |
獲取AV控制器
公共Object getAVController()
獲得Ability的Window媒體控制器。包含Window的媒體信息的媒體控制器。
返回值:
返回包含Window媒體信息的對象;如果未設置媒體控制器,則返回 null。
獲取布局參數(shù)
public WindowManager.LayoutConfig getLayoutParams()
獲取Ability的Window布局參數(shù)。必須為所有功能的Window設置布局參數(shù)。為父Window提供了這些參數(shù),以指定如何布置當前功能的Window。
您可以使用布局參數(shù)來控制功能的Window屬性,例如位置,長度和寬度。
返回值:
返回Ability的Window布局參數(shù);如果未設置布局參數(shù),則返回 null。
設置布局參數(shù)
公共無效 setLayoutParams(WindowManager.LayoutConfig 參數(shù))
設置功能的Window布局參數(shù)。為父Window提供了這些參數(shù),以指定如何布置當前功能的Window。
您可以使用布局參數(shù)來控制功能的Window屬性,例如位置,長度和寬度。
參數(shù):
| 參數(shù)名稱 | 參數(shù)說明 |
|---|---|
| 參數(shù) | 指示包含布局參數(shù)的 WindowManager.LayoutConfig 對象。此參數(shù)不能為空。 |
查找組件ById
公共Component findComponentById(int resID)
根據(jù)資源ID在XML文件中查找組件。
參數(shù):
| 參數(shù)名稱 | 參數(shù)說明 |
|---|---|
| 識別碼 | 指示組件的資源ID。 |
返回值:
如果找到記錄,則返回與 ID 對應的組件;否則返回 null。
設置環(huán)境模式
公共無效 setIsAmbientMode(布爾 isEnabled)
設置Window的輸入 AOD 模式
參數(shù):
| 參數(shù)名稱 | 參數(shù)說明 |
|---|---|
| isEnabled | 指示是否啟用了 AOD 模式 |
按下按鍵
公共布爾 onKeyDown(int keyCode,KeyEvent keyEvent)
按下鍵時調(diào)用。當“技能”中的任何組件獲得焦點時,將首先處理該組件的按下事件。如果為組件的按下事件觸發(fā)的回調(diào)返回 true,則不會調(diào)用此回調(diào)。此回調(diào)的默認實現(xiàn)不執(zhí)行任何操作,并返回 false。
參數(shù):
| 參數(shù)名稱 | 參數(shù)說明 |
|---|---|
| 關鍵代碼 | 指示按下的鍵的代碼。 |
| keyEvent | 指示按下事件。 |
返回值:
如果已處理此事件且將不進一步傳遞,則返回 true;否則,返回 false。如果未處理此事件,則應返回 false 并應將其傳遞給其他處理程序。
也可以看看:
onKeyUp(int,ohos.multimodalinput.event.KeyEvent)
在關鍵
布爾布爾 onKeyUp(int keyCode,KeyEvent keyEvent)
釋放鍵時調(diào)用。當“技能”中的任何組件獲得焦點時,將首先處理該組件的按鍵事件。如果為組件的按鍵事件觸發(fā)的回調(diào)返回 true,則不會調(diào)用此回調(diào)。此回調(diào)的默認實現(xiàn)不執(zhí)行任何操作,并返回 false。
參數(shù):
| 參數(shù)名稱 | 參數(shù)說明 |
|---|---|
| 關鍵代碼 | 指示已釋放密鑰的代碼。 |
| keyEvent | 指示按鍵事件。 |
返回值:
如果已處理此事件且將不進一步傳遞,則返回 true;否則,返回 false。如果未處理此事件,則應返回 false 并應將其傳遞給其他處理程序。
也可以看看:
onKeyDown(int,ohos.multimodalinput.event.KeyEvent)
onBackPressed
受保護的void onBackPressed()
當按下返回鍵時回叫。
默認實現(xiàn)會破壞該功能。您可以覆蓋此方法。
連接Ability
public boolean connectAbility(Intent intent,IAbilityConnection conn)
將Ability連接到服務Ability。
Page 或 Service 功能可以調(diào)用此方法,但是連接的目的地必須是 Service 功能。連接服務功能后,必須實現(xiàn)IAbilityConnection 接口才能獲取目標服務功能的代理。
調(diào)用Context必須已啟動并且尚未銷毀。否則,此方法返回 false。例如,當 AbilityForm 供應商在組件單擊或觸摸事件觸發(fā)的回調(diào)中調(diào)用此方法時,可能會返回 false,因為供應商可能未啟動。
指定者:
接口ContextconnectAbility
覆寫:
類AbilityContext中的connectAbility
參數(shù):
| 參數(shù)名稱 | 參數(shù)說明 |
|---|---|
| Intent | 指示服務連接Ability。 |
| conn | 指示連接服務功能時的回調(diào)對象。 |
返回值:
如果連接成功,則返回 true;否則,返回 false。否則返回 false。
throw:
| throw名稱 | throw說明 |
|---|---|
| IllegalStateException | 如果功能未初始化,則throw此異常。 |
| IllegalArgumentException | 如果輸入?yún)?shù)為 null,則throw此異常。 |
也可以看看:
Context.connectAbility(Intent,IAbilityConnection)
斷開Ability
公共無效的 disconnectAbility((IAbilityConnection conn)
與 connectAbility(ohos.aafwk.content.Intent,ohos.aafwk.ability.IAbilityConnection)相比,斷開服務Ability與服務Ability的連接 。
指定者:
接口ContextdisconnectAbility
覆寫:
disconnectAbility 類 AbilityContext
參數(shù):
| 參數(shù)名稱 | 參數(shù)說明 |
|---|---|
| conn | 指示連接服務功能時的回調(diào)對象。 |
throw:
| throw名稱 | throw說明 |
|---|---|
| IllegalStateException | 如果功能未初始化,則throw此異常。 |
| IllegalArgumentException | 如果輸入?yún)?shù)為 null,則throw此異常。 |
也可以看看:
Context.disconnectAbility(IAbilityConnection)
getLifecycle
公共最終 Lifecycle getLifecycle()
獲取當前Ability的 Lifecycle 對象。
指定者:
getLifecycle 接口 ILifecycle
返回值:
返回Lifecycle對象。
也可以看看:
Lifecycle
插
public int insert((Uri uri,ValuesBucket value)
將數(shù)據(jù)記錄插入數(shù)據(jù)庫。此方法應由數(shù)據(jù)Ability實現(xiàn)。
參數(shù):
| 參數(shù)名稱 | 參數(shù)說明 |
|---|---|
| uri | 指示要插入數(shù)據(jù)的位置。 |
| 值 | 指示要插入的數(shù)據(jù)。 |
返回值:
返回新插入的數(shù)據(jù)記錄的索引。
批量插入
public final int batchInsert(Uri uri,ValuesBucket [] values)
將多個數(shù)據(jù)記錄插入數(shù)據(jù)庫。此方法應由數(shù)據(jù)Ability實現(xiàn)。
參數(shù):
| 參數(shù)名稱 | 參數(shù)說明 |
|---|---|
| uri | 指示要插入數(shù)據(jù)的位置。 |
| 價值觀 | 指示要插入的數(shù)據(jù)。 |
返回值:
返回插入的數(shù)據(jù)記錄數(shù)。
刪除
public int delete(Uri uri,DataAbilityPredicates predicates)
刪除一個或多個數(shù)據(jù)記錄。此方法應由數(shù)據(jù)Ability實現(xiàn)。
參數(shù):
| 參數(shù)名稱 | 參數(shù)說明 |
|---|---|
| uri | 指示存儲要刪除數(shù)據(jù)的數(shù)據(jù)庫表。 |
| 謂詞 | 表示過濾條件。如果此參數(shù)為 null,則默認情況下將刪除所有數(shù)據(jù)記錄。 |
返回值:
返回已刪除的數(shù)據(jù)記錄數(shù)。
更新
public int 更新(Uri uri,ValuesBucket value,DataAbilityPredicates predicates)
更新數(shù)據(jù)庫中的一個或多個數(shù)據(jù)記錄。此方法應由數(shù)據(jù)Ability實現(xiàn)。
參數(shù):
| 參數(shù)名稱 | 參數(shù)說明 |
|---|---|
| uri | 指示存儲要更新數(shù)據(jù)的數(shù)據(jù)庫表。 |
| 值 | 指示要更新的數(shù)據(jù)。此參數(shù)可以為空。 |
| 謂詞 | 表示過濾條件。如果此參數(shù)為null,則默認情況下將更新所有數(shù)據(jù)記錄。 |
返回值:
返回更新的數(shù)據(jù)記錄數(shù)。
詢問
公共ResultSet查詢(Uri uri,String [] columns,DataAbilityPredicates predicates)
查詢數(shù)據(jù)庫中的一個或多個數(shù)據(jù)記錄。此方法應由數(shù)據(jù)Ability實現(xiàn)。
參數(shù):
| 參數(shù)名稱 | 參數(shù)說明 |
|---|---|
| uri | 表示存儲要查詢的數(shù)據(jù)的數(shù)據(jù)庫表。 |
| 列 | 指示要查詢的列,以數(shù)組形式,例如{“ name”,“ age”}。當此參數(shù)為 null 時,您應該定義處理邏輯。 |
| 謂詞 | 表示過濾條件。如果此參數(shù)為 null,則默認情況下將查詢所有數(shù)據(jù)記錄。 |
返回值:
返回查詢的數(shù)據(jù)。
執(zhí)行批處理
公共最終 DataAbilityResult [] executeBatch(ArrayList < DataAbilityOperation > operation)throws OperationExecuteException
在數(shù)據(jù)庫上執(zhí)行批處理操作。此方法應由數(shù)據(jù)Ability實現(xiàn)。
要在數(shù)據(jù)庫上執(zhí)行的批處理操作封裝為 DataAbilityOperation 對象。每個對象對應一個操作,例如,插入或刪除。每個操作的調(diào)用結(jié)果將保存到 DataAbilityResult 類型的數(shù)據(jù)數(shù)組并由其返回。
參數(shù):
| 參數(shù)名稱 | 參數(shù)說明 |
|---|---|
| 運作 | 指示數(shù)據(jù)操作列表,其中可以包含對數(shù)據(jù)庫的多項操作。 |
返回值:
以數(shù)組形式返回每個操作的結(jié)果。
throw:
| throw名稱 | throw說明 |
|---|---|
| OperationExecuteException | 如果批處理操作失敗,則throw此異常。 |
打開文件
public FileDescriptor openFile(Uri uri,String mode)throws FileNotFoundException
打開一個文件。此方法應由數(shù)據(jù)Ability實現(xiàn)。
參數(shù):
| 參數(shù)名稱 | 參數(shù)說明 |
|---|---|
| uri | 指示要打開的文件的路徑。 |
| 模式 | 指示打開模式,對于只讀訪問可以為“ r”,對于只讀訪問可以為“ w”(擦除文件中當前存在的任何數(shù)據(jù)),對于截斷任何現(xiàn)有文件的寫訪問可以為“ wt”,“ wa” “”表示僅寫訪問權(quán)限以追加到任何現(xiàn)有數(shù)據(jù),“ rw”表示對任何現(xiàn)有數(shù)據(jù)的讀寫訪問,“ rwt”表示對截斷任何現(xiàn)有文件的讀寫訪問。 |
返回值:
返回文件描述符的 FileDescriptor 對象。
Thorw:
| throw名稱 | throw說明 |
|---|---|
| FileNotFoundException | 如果文件不存在,則throw此異常。 |
openRawFile
public RawFileDescriptor openRawFile(Uri uri,String模式)throw FileNotFoundException
打開一個原始文件。此方法應由數(shù)據(jù)Ability實現(xiàn)。
參數(shù):
| 參數(shù)名稱 | 參數(shù)說明 |
|---|---|
| uri | 指示要打開的原始文件的路徑。 |
| 模式 | 指示打開模式,對于只讀訪問可以為“ r”,對于只讀訪問可以為“ w”(擦除文件中當前存在的任何數(shù)據(jù)),對于截斷任何現(xiàn)有文件的寫訪問可以為“ wt”,“ wa” “”表示僅寫訪問權(quán)限以追加到任何現(xiàn)有數(shù)據(jù),“ rw”表示對任何現(xiàn)有數(shù)據(jù)的讀寫訪問,“ rwt”表示對截斷任何現(xiàn)有文件的讀寫訪問。 |
返回值:
返回包含文件描述符的 RawFileDescriptor 對象。
throw:
| throw名稱 | throw說明 |
|---|---|
| FileNotFoundException | 如果原始文件不存在,則throw此異常。 |
getFileTypes
public String [] getFileTypes((Uri uri,String mimeTypeFilter)
獲取文件的 MIME 類型。此方法應由數(shù)據(jù)Ability實現(xiàn)。
參數(shù):
| 參數(shù)名稱 | 參數(shù)說明 |
|---|---|
| uri | 指示要獲取的文件的路徑。 |
| mimeTypeFilter | 指示要獲取的文件的 MIME 類型。此參數(shù)不能設置為 null。 1.“ / ”:獲得數(shù)據(jù)Ability支持的所有類型。 2.“ image / ”:獲取主要類型為任何子類型的圖像的文件。 3.“ / jpg”:獲取其子類型為任何主要類型的 JPG 的文件。 |
返回值:
返回匹配文件的 MIME 類型;如果沒有與數(shù)據(jù)Ability匹配的類型,則返回 null。
呼叫
公共 PacMap 調(diào)用(String方法,String arg,PacMap 附加功能)
在此數(shù)據(jù)功能中定義一個方法(實現(xiàn)取決于子類)。
參數(shù):
| 參數(shù)名稱 | 參數(shù)說明 |
|---|---|
| 方法 | 指示方法名稱。 |
| arg | 指示方法傳輸?shù)?nbsp;String 參數(shù)。 |
| extras | 表示該方法傳輸?shù)?nbsp;PacMap 參數(shù)。 |
返回值:
返回方法的 PacMap 結(jié)果。
獲取類型
公共String getType((Uri uri)
獲取與“數(shù)據(jù)”功能的 URI 指定的數(shù)據(jù)匹配的 MIME 類型。此方法應由數(shù)據(jù)Ability實現(xiàn)。
數(shù)據(jù)功能支持常規(guī)數(shù)據(jù)類型,包括文本,HTML 和 JPEG。
參數(shù):
| 參數(shù)名稱 | 參數(shù)說明 |
|---|---|
| uri | 指示數(shù)據(jù)的URI。 |
返回值:
返回與 uri 指定的數(shù)據(jù)匹配的 MIME 類型。
onStart
受保護的 void onStart(Intent intent)
在一項功能開始初始化時回調(diào)(在該功能的整個生命周期中只能調(diào)用一次)。
大多數(shù)初始化操作應通過調(diào)用此方法來執(zhí)行。例如,您可以使用當前方法調(diào)用setMainRoute(java.lang.String)和addActionRoute(java.lang.String,java.lang.String)來為 Page 功能設置主路由器和動作路由器。
參數(shù):
| 參數(shù)名稱 | 參數(shù)說明 |
|---|---|
| Intent | 表示啟動此功能時攜帶的信息。注意:對于服務技能,將傳遞 null。 |
onPostStart
受保護的 void onPostStart(PacMap pacMap)
通過調(diào)用 onStart(ohos.aafwk.content.Intent)和 onRestoreAbilityState(ohos.utils.PacMap)啟動功能時調(diào)用 。
通常,此方法用于系統(tǒng)類在應用程序啟動后執(zhí)行最終的初始化操作。您不需要為您的應用程序?qū)崿F(xiàn)此方法。重寫此方法時,必須調(diào)用其父類的實現(xiàn)。否則,將引發(fā)異常。
參數(shù):
| 參數(shù)名稱 | 參數(shù)說明 |
|---|---|
| pacMap | 指示 onSaveAbilityState(ohos.utils.PacMap)中最近提供的數(shù)據(jù)。 |
onStop
受保護的 void onStop()
在消滅異能之前回叫。
此方法指示Ability生命周期的結(jié)束??梢栽诠δ苷{(diào)用 terminateAbility()方法或該功能的最后一個功能片調(diào)用 AbilitySlice#terminate() 方法之后執(zhí)行。通常,此方法用于清除資源。
onActive
受保護的 void onActive()
回叫時的Ability進入ACTIVE狀態(tài)。
在AbilityACTIVE狀態(tài)是在前臺和是交互式的。
onPostActive
受保護的 void onPostActive()
在調(diào)用 onActive()之后完全激活該功能時調(diào)用 。
通常,此方法用于系統(tǒng)類,以在激活應用程序后執(zhí)行最終設置。您不需要為您的應用程序?qū)崿F(xiàn)此方法。重寫此方法時,必須調(diào)用其父類的實現(xiàn)。否則,將引發(fā)異常。
不活動時
受保護的 void onInactive()
當某個異能進入INACTIVE狀態(tài)時被回調(diào)(此狀態(tài)下的異能不是交互式的,可能會變?yōu)?strong>Background或ACTIVE狀態(tài))。
不活動是一種中間狀態(tài),不會持續(xù)很長時間。之間頻繁切換ACTIVE和INACTIVE是可能的。因此,您可以使用此方法執(zhí)行某些簡單的操作,例如,提交任何更改。
在前景上
onForeground 上受保護的 void(Intent intent)
當技能的狀態(tài)從背景變?yōu)椴?strong>活躍時回調(diào) 。
這是一種中間狀態(tài)回調(diào)方法。通常,系統(tǒng)調(diào)用此方法以刷新數(shù)據(jù)狀態(tài),然后回調(diào) onActive()方法。
參數(shù):
| 參數(shù)名稱 | 參數(shù)說明 |
|---|---|
| Intent | 指示該Ability恢復為非活動狀態(tài)時攜帶的信息。 |
在背景上
受保護的 void onBackground()
技能進入背景狀態(tài)時回調(diào) 。
在Background狀態(tài)下的 Page 功能是不可見的。建議您暫停與該功能相關的線程,并清除一些資源以釋放系統(tǒng)內(nèi)存。
在連接
受保護的 IRemoteObject onConnect(Intent intent)
當服務Ability首次與該Ability相關聯(lián)時回調(diào)。
僅在服務Ability上調(diào)用此方法。您可以覆蓋該方法以返回服務Ability的代理。
參數(shù):
| 參數(shù)名稱 | 參數(shù)說明 |
|---|---|
| Intent | 指示有關服務Ability的連接信息。 |
返回值:
返回服務Ability的代理。
斷開時
保護無效 onDisconnect (Intent intent)
當與服務Ability相關的所有Ability都斷開連接時回調(diào)。
僅在服務Ability上調(diào)用此方法。您可以覆蓋該方法以清除服務Ability的代理資源。
參數(shù):
| 參數(shù)名稱 | 參數(shù)說明 |
|---|---|
| Intent | 指示有關服務Ability的斷開連接信息。 |
在命令
@Deprecated protected void onCommand(Intent intent,boolean restart)
不推薦使用。服務Ability啟動時回調(diào)。
此方法只能由“服務”功能調(diào)用。您可以使用 startAbility(ohos.aafwk.content.Intent)方法啟動服務功能。然后,系統(tǒng)調(diào)用當前方法以使用傳輸?shù)?intent 參數(shù)執(zhí)行其自己的邏輯。
參數(shù):
| 參數(shù)名稱 | 參數(shù)說明 |
|---|---|
| Intent | 指示啟動服務功能的Intent。 |
| 重新開始 | 指示啟動模式。值為 true 表示服務Ability在銷毀后重新啟動,值為 false 表示正常啟動。 |
在命令
受保護的 void onCommand(Intent intent,boolean restart,int startId)
服務啟動時回叫。
此方法只能由 Service 調(diào)用。您可以使用 startAbility(ohos.aafwk.content.Intent)方法啟動 Service。然后,系統(tǒng)調(diào)用當前方法以使用傳輸?shù)?intent 參數(shù)執(zhí)行其自己的邏輯。
參數(shù):
| 參數(shù)名稱 | 參數(shù)說明 |
|---|---|
| Intent | 指示服務啟動的Intent。 |
| 重新開始 | 指示啟動模式。值為 true 表示服務在銷毀后將重新啟動,而值為 false 表示正常啟動。 |
| startId | 指示啟動服務功能的次數(shù)。每次啟動異能時,startId 都會增加 1。例如,如果該Ability已啟動六次,則 startId 的值為 6。 |
New Intent
protected void onNewIntent (Intent intent)
在功能的啟動模式設置為 singleInstance 時調(diào)用。當您重新啟動位于功能堆棧頂部的功能時,會發(fā)生這種情況。
參數(shù):
| 參數(shù)名稱 | 參數(shù)說明 |
|---|---|
| Intent | 指示包含有關Ability信息的新Intent。 |
關于配置更新
public void onConfigurationUpdated (Configuration configuration)
在系統(tǒng)配置更新時調(diào)用。
參數(shù):
| 參數(shù)名稱 | 參數(shù)說明 |
|---|---|
| 組態(tài) | 配置信息包括語言環(huán)境。 |
觸摸事件
受保護的布爾 onTouchEvent(TouchEvent事件)
在將觸摸事件調(diào)度到此功能時調(diào)用。此回調(diào)的默認實現(xiàn)不執(zhí)行任何操作,并返回false。
參數(shù):
| 參數(shù)名稱 | 參數(shù)說明 |
|---|---|
| 事件 | 指示有關觸摸事件的信息。 |
返回值:
如果處理了事件,則返回 true;否則,返回 false。否則返回 false。
方向改變
受保護的 void onOrientationChanged((AbilityInfo.DisplayOrientation displayOrientation)
當屏幕的顯示方向改變時回調(diào)。
當顯示方向改變時,您可以重寫此方法以實現(xiàn)您的邏輯。默認情況下,更改顯示方向時不執(zhí)行任何操作。
參數(shù):
| 參數(shù)名稱 | 參數(shù)說明 |
|---|---|
| displayOrientation | 指示新的顯示方向。支持以下值:AbilityInfo.DisplayOrientation#LANDSCAPE,AbilityInfo.DisplayOrientation#PORTRAIT,AbilityInfo.DisplayOrientation#FOLLOWRECENT 和 AbilityInfo.DisplayOrientation#UNSPECIFIED。 |
在內(nèi)存級別
onMemoryLevel 上的 public void(int 級別)
在系統(tǒng)確定修整內(nèi)存時調(diào)用,例如,當該功能在后臺運行并且沒有足夠的內(nèi)存來運行盡可能多的后臺進程時調(diào)用。
參數(shù):
| 參數(shù)名稱 | 參數(shù)說明 |
|---|---|
| 水平 | 指示內(nèi)存調(diào)整級別,該級別顯示當前內(nèi)存使用狀況。這些值及其各自的含義如下:5:應用程序正常運行,不會被殺死,但是設備的內(nèi)存略微不足。系統(tǒng)可能會根據(jù)最近最少使用(LRU)列表開始終止進程。10:應用程序正常運行,不會被殺死,但是設備的內(nèi)存極低。您的應用程序應釋放一些不必要的資源以提高系統(tǒng)性能,從而相應地提高應用程序性能。15:應用程序正常運行,但是系統(tǒng)已根據(jù) LRU 列表終止了大多數(shù)緩存的進程。在這種情況下,您的應用程序應釋放盡可能多的不必要資源。否則,系統(tǒng)可能會繼續(xù)終止所有緩存的進程,并開始終止某些應保持運行的進程,例如,在后臺運行的服務。20:例如,由于用戶觸摸了設備上的 Home 鍵,因此應用程序 UI 被隱藏。您的應用程序應釋放分配給 UI 顯示的資源,以釋放內(nèi)存。40:設備的內(nèi)存不足,并且您的應用程序位于 LRU 列表的頂部。該系統(tǒng)不太可能殺死您的應用程序。為了使您的應用程序進程在緩存中保留更長的時間,您的應用程序應通過釋放一些易于恢復的資源來增加可用的系統(tǒng)內(nèi)存。這樣,您的應用程序可以平穩(wěn)地返回到前臺,而不必重新啟動。60:設備的內(nèi)存消耗極低,您的應用程序位于 LRU 列表的中間。如果沒有更多的內(nèi)存釋放,您的應用程序可能會在以后被殺死。80:設備的內(nèi)存消耗極低,您的應用程序位于 LRU 列表的末尾。該系統(tǒng)最有可能首先殺死您的應用程序。在這種情況下,您的應用程序應釋放所有可以釋放的資源。 |
在重新連接上
public void onReconnect (Intent intent)
當新的客戶端之前與之斷開所有連接后,新客戶端嘗試連接至服務Ability時調(diào)用。
服務Ability必須已啟動,但沒有被破壞,也就是說,startAbility(ohos.aafwk.content.Intent)已被調(diào)用但stopAbility(ohos.aafwk.content.Intent)也沒有。
參數(shù):
| 參數(shù)名稱 | 參數(shù)說明 |
|---|---|
| Intent | 指示正在連接服務Ability的Intent。 |
Ability結(jié)果
受保護的無效 onAbilityResult(int requestCode,int resultCode,Intent resultData)
在調(diào)用 startAbilityForResult(ohos.aafwk.content.Intent,int)以啟動功能并返回結(jié)果時調(diào)用。
僅在 Page 功能上調(diào)用此方法。您可以啟動一項新功能來執(zhí)行一些計算,并使用 setResult(int,ohos.aafwk.content.Intent)返回計算結(jié)果。然后,系統(tǒng)回調(diào)當前方法以使用返回的數(shù)據(jù)執(zhí)行其自己的邏輯。
參數(shù):
| 參數(shù)名稱 | 參數(shù)說明 |
|---|---|
| 請求代碼 | 指示功能啟動后返回的請求代碼。您可以定義請求代碼以標識Ability返回的結(jié)果。取值范圍是 0?65535。 |
| resultCode | 指示該功能啟動后返回的結(jié)果代碼。您可以定義結(jié)果代碼以識別錯誤。 |
| resultData | 指示該功能啟動后返回的數(shù)據(jù)。您可以定義返回的數(shù)據(jù)。該值可以為空。 |
在創(chuàng)建表單上
受保護的 AbilityForm onCreateForm()
調(diào)用以返回 AbilityForm 對象。
如果 Page 功能需要在其他功能中顯示為 AbilityForm,請重寫此方法以返回 AbilityForm 對象。默認情況下,返回 null。
返回值:
返回 AbilityForm 對象。
在保存Ability狀態(tài)
public void onSaveAbilityState((PacMap outState)
保存此功能的臨時數(shù)據(jù)和狀態(tài)。此方法應通過 Page 功能實現(xiàn)。
當系統(tǒng)確定在意外情況下(例如,當屏幕方向更改或用戶觸摸 Home 鍵時)該功能可能被破壞時,將調(diào)用此方法。通常,此方法僅用于保存臨時狀態(tài)。
參數(shù):
| 參數(shù)名稱 | 參數(shù)說明 |
|---|---|
| outState | 指示用于存儲用戶數(shù)據(jù)和狀態(tài)的PacMap對象。此參數(shù)不能為空。 |
恢復Ability狀態(tài)
public void onRestoreAbilityState(PacMap inState)
由系統(tǒng)恢復Ability的數(shù)據(jù)和狀態(tài)。此方法應通過Page功能實現(xiàn)。
如果某個功能由于資源回收而在特定時間被破壞或被意外破壞,則調(diào)用此方法,并調(diào)用onSaveAbilityState(ohos.utils.PacMap)方法以保存其用戶數(shù)據(jù)和狀態(tài)。通常,此方法在onStart(ohos.aafwk.content.Intent)方法之后調(diào)用。
參數(shù):
| 參數(shù)名稱 | 參數(shù)說明 |
|---|---|
| 州內(nèi) | 指示用于存儲數(shù)據(jù)和狀態(tài)的PacMap對象。此參數(shù)不能為空。 |
用戶結(jié)果中的請求權(quán)限
public void onRequestPermissionsFromUserResult(int requestCode, String[] permissions,int [] grantResults)
Called back after permissions are requested by using AbilityContext.requestPermissionsFromUser(java.lang.String[],int).
參數(shù):
| 參數(shù)名稱 | 參數(shù)說明 |
|---|---|
| 請求代碼 | 指示從 AbilityContext.requestPermissionsFromUser(java.lang.String [],int)傳遞給此方法的請求代碼。 |
| 權(quán)限 | 指示使用 AbilityContext.requestPermissionsFromUser(java.lang.String [],int)請求的權(quán)限列表。此參數(shù)不能為空。 |
| 授予結(jié)果 | 指示使用 AbilityContext.requestPermissionsFromUser(java.lang.String [],int)請求的相應權(quán)限的授予結(jié)果。值 0 表示授予權(quán)限,值 -1 表示不授予權(quán)限。 |
在新說明中
public CharSequence 的onNewDescription()
在此功能之前調(diào)用的是為該功能生成新描述的背景。此方法旨在將要顯示的Ability當前狀態(tài)的文本描述返回給用戶。
返回值:
返回當前用戶行為的簡短描述。
onLeaveForeground
public void onLeaveForeground()
當此功能由于用戶操作(例如,用戶觸摸Home鍵)而即將離開前臺并進入背景時調(diào)用。
事件派遣
public void onEventDispatch()
每次為此功能調(diào)度按鍵,觸摸或軌跡球事件時調(diào)用。如果您想知道用戶在此功能運行時以某種方式與設備進行了交互,則可以覆蓋此回調(diào)方法。此方法與 onLeaveForeground() 一起 設計用于幫助功能智能地管理狀態(tài)欄通知。具體來說,它們幫助功能確定何時取消通知。
啟動Ability
public final void startAbility((Intent intent)throw IllegalArgumentException,IllegalStateException
開始一項新技能。
頁面或服務Ability使用此方法來啟動特定Ability。系統(tǒng)根據(jù) intent 參數(shù)的值從已安裝的Ability中定位目標Ability,然后啟動它。您可以指定使用 intent 參數(shù)開始的功能。
通過添加 Intent#FLAG_START_FOREGROUND_ABILITY 的標志,即使沒有啟動托管該功能的應用程序,也可以啟動它參數(shù):
| 參數(shù)名稱 | 參數(shù)說明 |
|---|---|
| Intent | 指示啟動的Ability。 |
Throws:
| Throw名稱 | Throw說明 |
|---|---|
| IllegalArgumentException | 如果輸入?yún)?shù)為 null,則throw此異常。 |
| IllegalStateException | 如果功能未初始化,則throw此異常。 |
啟動Ability
public final void startAbility(Intent intent,AbilityOptions選項)throw IllegalArgumentException,IllegalStateException
從選項開始新技能。
Page 功能使用此方法來啟動具有共享組件轉(zhuǎn)換的功能。
參數(shù):
| 參數(shù)名稱 | 參數(shù)說明 |
|---|---|
| Intent | 指示啟動的Ability。 |
| 選項 | Ability選項參數(shù),可以轉(zhuǎn)移共享組件進行過渡。 |
throw:
| throw名稱 | throw說明 |
|---|---|
| IllegalArgumentException | 如果輸入?yún)?shù)為 null,則throw此異常。 |
| IllegalStateException | 如果功能未初始化,則throw此異常。 |
也可以看看:
startAbility(Intent)
開始結(jié)果的Ability
public final void startAbilityForResult(Intent intent,int requestCode)throw IllegalArgumentException,IllegalStateException
啟動一個異能并在該異能被銷毀時返回執(zhí)行結(jié)果。
銷毀該Ability時,將調(diào)用 onAbilityResult(int,int,ohos.aafwk.content.Intent),并將返回的 requestCode 傳輸?shù)疆斍胺椒ā=o定的 requestCode 是自定義的,不能為負數(shù)。
參數(shù):
| 參數(shù)名稱 | 參數(shù)說明 |
|---|---|
| Intent | 指示啟動的Ability。 |
| 請求代碼 | 指示功能啟動后返回的請求代碼。您可以定義請求代碼以標識Ability返回的結(jié)果。取值范圍是 0?65535。 |
throw:
| throw名稱 | throw說明 |
|---|---|
| IllegalArgumentException | 如果輸入?yún)?shù)無效,則throw此異常。 |
| IllegalStateException | 如果功能未初始化,則throw此異常。 |
也可以看看:
startAbility(Intent),onAbilityResult(int,int,Intent),setResult(int,Intent)
設定結(jié)果
public final void setResult(int resultCode,Intent resultData)
設置此 Page 功能返回給調(diào)用方的結(jié)果代碼和數(shù)據(jù)。
當 Page 功能被銷毀時,調(diào)用方將覆蓋 AbilitySlice#onAbilityResult(int,int,Intent) 方法,以接收當前方法中的ResultSet。僅在功能已初始化后才能調(diào)用此方法。
參數(shù):
| 參數(shù)名稱 | 參數(shù)說明 |
|---|---|
| resultCode | 指示銷毀該Ability后返回的結(jié)果代碼。您可以定義結(jié)果代碼以識別錯誤。 |
| resultData | 指示銷毀該Ability后返回的數(shù)據(jù)。您可以定義返回的數(shù)據(jù)。此參數(shù)可以為空。 |
throw:
| throw名稱 | throw說明 |
|---|---|
| IllegalStateException | 如果此Ability不是 Page Ability或該Ability未初始化,則throw此異常。 |
終止Ability
公共最終無效 ()
破壞此頁面或服務功能。
頁面或服務功能執(zhí)行完所有操作后,便可以使用此方法破壞自身以釋放內(nèi)存。僅在功能被初始化后才能調(diào)用此方法。
指定者:
接口 ContextterminateAbility
覆寫:
terminateAbility 類 AbilityContext
也可以看看:
Context.terminateAbility()
停止Ability
public final boolean stopAbility(Intent intent)
摧毀另一種服務Ability。
指定者:
接口Context stopAbility
覆寫:
stopAbility 類 AbilityContext
參數(shù):
| 參數(shù)名稱 | 參數(shù)說明 |
|---|---|
| Intent | 指示有關服務Ability的信息。 |
返回值:
如果服務Ability被破壞,則返回 true;否則,返回 true。否則返回 false。
也可以看看:
網(wǎng)頁題目:創(chuàng)新互聯(lián)鴻蒙OS教程:鴻蒙OSAbility
文章出自:http://fisionsoft.com.cn/article/dhodooi.html


咨詢
建站咨詢
