W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
作為使用 Page 模板的 Ability 的基本單位 ,AbilitySlice 為服務(wù)邏輯和 UI 顯示提供了帶有載體的功能。
一個(gè)能力可以有多個(gè)能力切片。您必須重寫 Ability#onStart(Intent)方法以指定默認(rèn)的能力切片。通過使用 Ability#setMainRoute(String)指定此默認(rèn)路由。
您可以繼承 AbilitySlice 類來實(shí)現(xiàn)自己的能力切片,并在 onStart(ohos.aafwk.content.Intent)方法中設(shè)置其 UI ??梢允褂?setUIContent(ohos.agp.components.ComponentContainer)或setUIContent(int)來設(shè)置 UI 。通常,在功能切片的整個(gè)生命周期中,只需設(shè)置一次 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)方法來呈現(xiàn)新的能力切片,也可以使用 startAbility(ohos.aafwk.content.Intent)方法來啟動(dòng)新能力。
能力切片必須始終托管在一個(gè)能力中,并且其生命周期會(huì)隨著能力的變化而變化。功能片還具有其獨(dú)立的生命周期更改,該更改在功能片切換期間發(fā)生。
注意:在大多數(shù)情況下,您負(fù)責(zé)創(chuàng)建和維護(hù)能力切片實(shí)例。但是,系統(tǒng)會(huì)在某些情況下創(chuàng)建實(shí)例。例如,系統(tǒng)在能力的首次啟動(dòng)期間創(chuàng)建能力切片實(shí)例。這要求所有 AbilitySlice 子類都具有默認(rèn)的無參數(shù)構(gòu)造函數(shù)。根據(jù) Java 的定義,僅當(dāng)您未顯式聲明參數(shù)化構(gòu)造函數(shù)時(shí),編譯器才會(huì)為該類提供默認(rèn)的無參數(shù)構(gòu)造函數(shù)。因此,在覆蓋 AbilitySlice 子類時(shí),如果您的實(shí)現(xiàn)具有參數(shù)化構(gòu)造函數(shù),則必須顯式聲明一個(gè)無參數(shù)構(gòu)造函數(shù)。
使用頁面模板輸入能力
您可以指定多個(gè)動(dòng)作條目和一個(gè)功能的默認(rèn)主條目。每個(gè)條目代表功能和該功能可以提供的 UI。啟動(dòng)一項(xiàng)功能后,系統(tǒng)會(huì)將已轉(zhuǎn)移“ Intent”中的“操作”字段與定義的條目進(jìn)行匹配。如果找到指定的能力片,則系統(tǒng)將啟動(dòng)它。如果轉(zhuǎn)移未指定的操作字段被Intent在被轉(zhuǎn)讓或動(dòng)作字段Intent不匹配所定義的任何條目,則顯示默認(rèn)能力切片。
以下代碼顯示了如何將條目設(shè)置為能力:
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());
}
}
前面的代碼僅定義運(yùn)行時(shí)的入口路由。要將能力的功能暴露給其他能力,必須在配置文件 config.json中 注冊(cè)操作字段。示例代碼:
{
"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"
]
}
]
...
}
]
...
}
}
以上述方式注冊(cè)受支持的動(dòng)作后,其他能力可以通過指定動(dòng)作使用您的能力,并直接打開相應(yīng)的能力片。示例代碼:
Intent intent = new Intent();
Operation operation = new Intent.OperationBuilder()
.withAction("action.pay")
.withDeviceId("")
.withBundleName("xxx")
.withAbilityName("yyy")
.build();
intent.setOperation(operation);
startAbility(intent);
AbilitySlice 生命周期
能力切片的生命周期與承載它的能力有關(guān)。功能片具有與宿主功能相同的生命周期狀態(tài)和生命周期回調(diào)方法。異能的生命周期狀態(tài)一旦更改,其異能切片就會(huì)發(fā)生相同的變化,并調(diào)用相同的回調(diào)方法。功能切片也可以具有其獨(dú)立的生命周期更改。在切換能力中的能力切片期間會(huì)發(fā)生此獨(dú)立更改。但是,這樣的切換不會(huì)影響宿主能力的生命周期。
能力切片具有以下四個(gè)生命周期狀態(tài):
與功能類似,功能切片提供以下生命周期回調(diào)方法。您可以覆蓋它們。
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();
}
下圖顯示了能力切片的完整生命周期。一個(gè)能力切片在任何時(shí)候都只能處于一種狀態(tài)。并非所有州都支持直接過渡。
注意:onStart(ohos.aafwk.content.Intent)方法在整個(gè)生命周期中只能調(diào)用一次。
下面提供了每種生命周期回調(diào)方法的含義以及一些最佳實(shí)踐建議。
在能力切片之間切換
您可以使用 present(ohos.aafwk.ability.AbilitySlice,ohos.aafwk.content.Intent)方法呈現(xiàn)新的能力切片,并使用Intent傳輸自定義參數(shù)。示例代碼:
Button button = new Button(this);
button.setClickedListener(listener -> {
AbilitySlice targetSlice = new MyAbilitySlice();
Intent intent = new Intent();
intent.setParam("value", 10);
present(targetSlice, intent);
});
注意:一個(gè)能力中最多可以同時(shí)顯示 1024 個(gè)能力切片。如果嘗試顯示第 1025 個(gè)異能切片,系統(tǒng)將強(qiáng)制使該異能崩潰。為了避免這種情況,如果需要同時(shí)顯示大量能力切片,則必須改進(jìn)代碼。
從接口 ohos.app 繼承的字段。Context |
---|
CONTEXT_IGNORE_SECURITY,CONTEXT_INCLUDE_CODE,<br />CONTEXT_RESOUCE_ONLY,CONTEXT_RESTRICTED,MODE_APPEND,MODE_PRIVATE |
建設(shè)者 | 描述 |
---|---|
AbilitySlice() |
修飾符和類型 | 方法 | 描述 |
---|---|---|
布爾值 | acquireAbilityFormAsync(Intent intent,AbilityForm.OnAcquiredCallback acquisitionCallback) | 請(qǐng)求目標(biāo)能力提供的 AbilityForm 實(shí)例。 |
布爾值 | connectAbility(Intent intent,IAbilityConnection conn) | 將主持人能力與使用服務(wù)模板的能力聯(lián)系起來。 |
void | continueAbility() | 將主機(jī)功能遷移到同一分布式網(wǎng)絡(luò)上的另一臺(tái)設(shè)備。 |
void | continueAbility(string deviceId) | 將主機(jī)功能遷移到同一分布式網(wǎng)絡(luò)上的給定設(shè)備。 |
void | continueAbilityReversible() | 以可逆的方式將主機(jī)功能遷移到同一分布式網(wǎng)絡(luò)上的另一臺(tái)設(shè)備,該功能允許將該功能通過 reverseContinueAbility()遷移回本地設(shè)備。 |
void | continueAbilityReversible(string deviceId) | 以可逆的方式將主機(jī)功能遷移到同一分布式網(wǎng)絡(luò)上的另一臺(tái)設(shè)備,該功能允許將該功能通過reverseContinueAbility()遷移回本地設(shè)備。 |
void | 斷開連接能力(IAbilityConnection conn) | 將主機(jī)功能與使用服務(wù)模板的功能斷開連接。 |
Component | findComponentById(int resID) | 根據(jù)資源 ID 在 XML 文件中查找組件。 |
Ability | getAbility() | 獲得該切片所屬的能力。 |
ContinuationState | getContinuationState() | 獲得宿主能力的遷移狀態(tài)。 |
WindowManager.LayoutConfig | getLayoutParams() | 獲取能力的窗口布局參數(shù)。 |
Lifecycle | getLifecycle() | 獲取當(dāng)前能力切片的Lifecycle對(duì)象。 |
String | getOriginalDeviceId() | 獲取從其遷移主機(jī)功能的源設(shè)備的 ID。 |
Window | getWindow() | 獲取與當(dāng)前能力對(duì)應(yīng)的窗口。 |
protected void | onAbilityResult(int requestCode,int resultCode,Intent resultData) | 在調(diào)用startAbilityForResult(ohos.aafwk.content.Intent,int)以啟動(dòng)功能并返回結(jié)果時(shí)調(diào)用。 |
protected void | onActive() | 回叫時(shí)的能力片進(jìn)入 ACTIVE 狀態(tài)。 |
protected void | onBackground() | 技能片進(jìn)入背景狀態(tài)時(shí)回調(diào)。 |
protected void | onBackPressed() | 當(dāng)按下返回鍵時(shí)回叫。 |
protected void | onForeground (Intent intent) | 當(dāng)能力片的狀態(tài)從背景變?yōu)椴?strong>活動(dòng)時(shí)回調(diào)。 |
protected void | onInactive() | 當(dāng)功能片進(jìn)入 INACTIVE 狀態(tài)時(shí)回調(diào)。 |
布爾值 | onKeyDown(int keyCode,KeyEvent keyEvent) | 按下鍵時(shí)調(diào)用。 |
布爾值 | onKeyUp(int keyCode,KeyEvent keyEvent) | 釋放鍵時(shí)調(diào)用。 |
protected void | onOrientationChanged(AbilityInfo.DisplayOrientation displayOrientation) | 當(dāng)屏幕的顯示方向改變時(shí)回調(diào)。 |
protected void | onResult(int requestCode,Intent resultIntent) | 返回presentForResult(ohos.aafwk.ability.AbilitySlice,ohos.aafwk.content.Intent,int)方法的結(jié)果時(shí)回調(diào)。 |
protected void | 在onStart(Intent intent) | 開始功能切片時(shí)回調(diào)。 |
protected void | onStop() | 在摧毀能力片之前回叫。 |
void | 當(dāng)前(AbilitySlice targetSlice,Intent intent) | 提供另一個(gè)能力切片,可以是尚未開始的能力切片或宿主能力中的現(xiàn)有能力切片。 |
void | presentForResult(AbilitySlice targetSlice,Intent intent,int requestCode) | 呈現(xiàn)另一個(gè)能力切片,并通過調(diào)用setResult(ohos.aafwk.content.Intent)返回目標(biāo)能力切片的結(jié)果集。 |
void | releaseAbilityForm(AbilityForm能力 表單) | 釋放主機(jī)能力的指定 AbilityForm 實(shí)例。 |
布爾值 | reverseContinueAbility() | 將主機(jī)功能從同一分布式網(wǎng)絡(luò)上的另一臺(tái)設(shè)備遷移回本地設(shè)備。 |
void | setDisplayOrientation(AbilityInfo.DisplayOrientation requestedOrientation) | 設(shè)置主持人能力的顯示方向。 |
void | setIsAmbientMode(boolean isEnabled) | 設(shè)置窗口的輸入 AOD 模式 |
void | setLayoutParams(WindowManager.LayoutConfig 參數(shù)) | 設(shè)置功能的窗口布局參數(shù)。 |
void | setResult(Intent resultData) | 設(shè)置銷毀能力切片時(shí)要返回的數(shù)據(jù)。 |
void | setUIContent(int layoutRes) | 通過使用布局資源 ID 來擴(kuò)大布局資源。 |
void | setUIContent(ComponentContainer componentContainer) | 通過使用 ComponentContainer來膨脹 UI 控件。 |
void | startAbility(Intent intent) | 開始一項(xiàng)新技能。 |
void | startAbility(Intent intent,AbilityOptions 選項(xiàng)) | 從選項(xiàng)開始新技能。 |
void | startAbilityForResult(Intent intent,int requestCode) | 啟動(dòng)一個(gè)異能并在該異能被銷毀時(shí)返回執(zhí)行結(jié)果。 |
布爾值 | stopAbility(Intent intent) | 破壞使用服務(wù)模板的能力。 |
void | 終止() | 摧毀當(dāng)前能力切片。 |
void | 終止能力() | 破壞主機(jī)能力。 |
String | toString() | 提供 impl 和相應(yīng)的切片信息,以方便人類閱讀。 |
從類 java.lang繼承的方法。object |
---|
clone,equals,finalize,getClass,hashCode,notify,notifyAll,wait,wait,wait |
公共 AliceSlice()
受保護(hù)的 void onStart(Intent intent)
開始功能切片時(shí)回調(diào)。使用 intent 參數(shù)傳送啟動(dòng)信息。
您必須為每個(gè)功能切片覆蓋此方法,并使用 setUIContent(int)或setUIContent(ohos.agp.components.ComponentContainer)方法來設(shè)置 UI。
在能力切片的整個(gè)Lifecycle中只能調(diào)用一次此方法。因此,建議您使用此方法來實(shí)現(xiàn)初始化,例如,初始化計(jì)時(shí)器或定義全局對(duì)象。
參數(shù):
參數(shù)名稱 | 參數(shù)說明 |
---|---|
Intent | 指示能力切片開始時(shí)攜帶的信息。 |
protected void onActive()
回叫時(shí)的能力片進(jìn)入 ACTIVE 狀態(tài)。
能力切片中的UI ACTIVE 狀態(tài)已獲得焦點(diǎn)和是交互式的。
protected void onInactive()
當(dāng)功能片進(jìn)入 INACTIVE 狀態(tài)時(shí)回調(diào) 。
INACTIVE 是中間狀態(tài),并且可以立即改變到 ACTIVE 或背景。在此狀態(tài)下,功能片的 UI 可能可見,但不是交互式的。建議您不要使用此方法來觸發(fā)復(fù)雜的服務(wù)邏輯。
protected void onForeground(Intent intent)
當(dāng)能力片的狀態(tài)從背景變?yōu)椴?活動(dòng)時(shí)回調(diào) 。
能力切片返回到前景。您可以使用此方法來實(shí)現(xiàn)重新初始化或通過使用 intent 參數(shù)來調(diào)整 UI。
參數(shù):
參數(shù)名稱 | 參數(shù)說明 |
---|---|
Intent | 指示能力切片返回不活動(dòng)狀態(tài)時(shí)攜帶的信息。 |
protected void onBackground()
技能片進(jìn)入背景狀態(tài)時(shí)回調(diào) 。
處于背景狀態(tài)的能力切片的用戶界面是不可見的,并且不是交互式的。建議您使用此方法停止或釋放資源。
protected void onStop()
在摧毀能力片之前回叫。
功能切片調(diào)用 Terminate()方法后,將回調(diào)此方法。您可以使用此方法回收資源。
protected void onAbilityResult(int requestCode,int resultCode,Intent resultData)
在調(diào)用 startAbilityForResult(ohos.aafwk.content.Intent,int)以啟動(dòng)功能并返回結(jié)果時(shí)調(diào)用。
此方法提供的功能與該功能的Ability#onAbilityResult(int,int,Intent)方法相同。
參數(shù):
參數(shù)名稱 | 參數(shù)說明 |
---|---|
請(qǐng)求代碼 | 指示功能啟動(dòng)后返回的請(qǐng)求代碼。您可以定義請(qǐng)求代碼以標(biāo)識(shí)能力返回的結(jié)果。取值范圍是0?65535。 |
resultCode | 指示該功能啟動(dòng)后返回的結(jié)果代碼。您可以定義結(jié)果代碼以識(shí)別錯(cuò)誤。 |
resultData | 指示該功能啟動(dòng)后返回的數(shù)據(jù)。您可以定義返回的數(shù)據(jù)。該值可以為空。 |
也可以看看:
startAbilityForResult(Intent,int)
protected void onResult(int requestCode,Intent resultIntent)
返回 presentForResult(ohos.aafwk.ability.AbilitySlice,ohos.aafwk.content.Intent,int)方法的結(jié)果時(shí) 回調(diào)。
當(dāng)調(diào)用presentForResult(ohos.aafwk.ability.AbilitySlice,ohos.aafwk.content.Intent,int)以啟動(dòng)新的功能片時(shí),銷毀功能片時(shí)將返回執(zhí)行結(jié)果。您可以重寫此方法來處理結(jié)果。
參數(shù):
參數(shù)名稱 | 參數(shù)說明 |
---|---|
請(qǐng)求代碼 | 指示能力切片啟動(dòng)后返回的請(qǐng)求代碼。您可以定義請(qǐng)求代碼以標(biāo)識(shí)能力切片返回的結(jié)果。取值范圍是 0?65535。 |
resultIntent | 指示銷毀起始異能之后返回的數(shù)據(jù)。此參數(shù)可以為空。 |
也可以看看:
presentForResult(AbilitySlice,Intent,int),setResult(Intent)
受保護(hù)的 void onOrientationChanged((AbilityInfo.DisplayOrientation displayOrientation)
當(dāng)屏幕的顯示方向改變時(shí)回調(diào)。
當(dāng)顯示方向改變時(shí),您可以重寫此方法以實(shí)現(xiàn)您的邏輯。默認(rèn)情況下,更改顯示方向時(shí)不執(zhí)行任何操作。
參數(shù):
參數(shù)名稱 | 參數(shù)說明 |
---|---|
displayOrientation | 指示新的顯示方向。支持以下值:DisplayOrientation#LANDSCAPE,DisplayOrientation#PORTRAIT,DisplayOrientation#FOLLOWRECENT和DisplayOrientation#UNSPECIFIED。 |
protected void onBackPressed()
當(dāng)按下返回鍵時(shí)回叫。
默認(rèn)實(shí)現(xiàn)會(huì)破壞能力切片。您可以覆蓋此方法。
public boolean onKeyDown(int keyCode,KeyEvent keyEvent)
按下鍵時(shí)調(diào)用。當(dāng) AbilitySlice 中的任何組件獲得焦點(diǎn)時(shí),將首先處理該組件的按下事件。如果為組件的按下事件觸發(fā)的回調(diào)返回 true,則不會(huì)調(diào)用此回調(diào)。此回調(diào)的默認(rèn)實(shí)現(xiàn)不執(zhí)行任何操作,并返回 false。
參數(shù):
參數(shù)名稱 | 參數(shù)說明 |
---|---|
關(guān)鍵代碼 | 指示按下的鍵的代碼。 |
keyEvent | 指示按下事件。 |
返回值:
如果已處理此事件且將不進(jìn)一步傳遞,則返回 true;否則,返回 false。如果未處理此事件,則應(yīng)返回 false并應(yīng)將其傳遞給其他處理程序。
也可以看看:
onKeyUp(int,ohos.multimodalinput.event.KeyEvent)
public boolean onKeyUp(int keyCode,KeyEvent keyEvent)
釋放鍵時(shí)調(diào)用。當(dāng) AbilitySlice 中的任何組件獲得焦點(diǎn)時(shí),將首先處理該組件的按鍵事件。如果為組件的按鍵事件觸發(fā)的回調(diào)返回 true,則不會(huì)調(diào)用此回調(diào)。此回調(diào)的默認(rèn)實(shí)現(xiàn)不執(zhí)行任何操作,并返回 false。
參數(shù):
參數(shù)名稱 | 參數(shù)說明 |
---|---|
關(guān)鍵代碼 | 指示已釋放密鑰的代碼。 |
keyEvent | 指示按鍵事件。 |
返回值:
如果已處理此事件且將不進(jìn)一步傳遞,則返回 true;否則,返回 false。如果未處理此事件,則應(yīng)返回false并應(yīng)將其傳遞給其他處理程序。
也可以看看:
onKeyDown(int,ohos.multimodalinput.event.KeyEvent)
公共string toString()
提供 impl 和相應(yīng)的切片信息,以方便人類閱讀。
覆寫:
返回值:
字符串格式的信息。
公共Window getWindow()
獲取與當(dāng)前能力對(duì)應(yīng)的窗口。
此方法提供的功能與 Ability#getWindow()方法相同。
返回值:
返回與當(dāng)前能力相對(duì)應(yīng)的窗口。
public WindowManager.LayoutConfig getLayoutParams()
獲取能力的窗口布局參數(shù)。必須為所有功能的窗口設(shè)置布局參數(shù)。為父窗口提供了這些參數(shù),以指定如何布置當(dāng)前功能的窗口。
此方法提供的功能與 Ability#getLayoutParams()方法相同。
返回值:
返回能力的窗口布局參數(shù);如果未設(shè)置布局參數(shù),則返回null。
public void setLayoutParams(WindowManager.LayoutConfig 參數(shù))
設(shè)置功能的窗口布局參數(shù)。為父窗口提供了這些參數(shù),以指定如何布置當(dāng)前功能的窗口。
此方法提供的功能與 Ability#setLayoutParams(LayoutConfig)方法相同。
參數(shù):
參數(shù)名稱 | 參數(shù)說明 |
---|---|
參數(shù) | 指示包含布局參數(shù)的 WindowManager.LayoutConfig 對(duì)象。此參數(shù)不能為空。 |
public void setIsAmbientMode(boolean isEnabled)
設(shè)置窗口的輸入 AOD 模式
參數(shù):
參數(shù)名稱 | 參數(shù)說明 |
---|---|
isEnabled | 指示是否啟用了 AOD 模式 |
public final void setUIContent(int layoutRes)
通過使用布局資源 ID 來擴(kuò)大布局資源。
參數(shù):
參數(shù)名稱 | 參數(shù)說明 |
---|---|
layoutRes | 表示布局資源ID,不能為負(fù)數(shù)。 |
也可以看看:
setUIContent(ComponentContainer)
public void setUIContent((ComponentContainer componentContainer)
通過使用 ComponentContainer來膨脹 UI 控件 。
您可以創(chuàng)建一個(gè)包含多個(gè)組件的 ComponentContainer 實(shí)例。
參數(shù):
參數(shù)名稱 | 參數(shù)說明 |
---|---|
componentContainer | 指示一組定制組件。 |
也可以看看:
setUIContent(int)
public Component findComponentById(int resID)
根據(jù)資源 ID 在 XML 文件中查找組件。
參數(shù):
參數(shù)名稱 | 參數(shù)說明 |
---|---|
識(shí)別碼 | 指示組件的資源 ID。 |
返回值:
如果找到記錄,則返回與 ID 對(duì)應(yīng)的組件;否則返回 null。
public final void present(AbilitySlice targetSlice,Intent intent)
提供另一個(gè)能力切片,可以是尚未開始的能力切片或宿主能力中的現(xiàn)有能力切片。
您可以使用 Intent對(duì)象傳遞必需的信息。
僅在以下情況下可以調(diào)用此方法:
參數(shù):
參數(shù)名稱 | 參數(shù)說明 |
---|---|
targetSlice | 指示目標(biāo)能力切片,不能為空。 |
intent | 表示切換過程中攜帶的信息,不能為空。 |
也可以看看:
presentForResult(AbilitySlice,Intent,int)
public final void presentForResult(AbilitySlice targetSlice,Intent intent,int requestCode)
呈現(xiàn)另一個(gè)能力切片,并通過調(diào)用 setResult(ohos.aafwk.content.Intent) 返回目標(biāo)能力切片的結(jié)果集 。
您可以使用 Intent 對(duì)象傳遞必需的信息。
僅在以下情況下可以調(diào)用此方法:
參數(shù):
參數(shù)名稱 | 參數(shù)說明 |
---|---|
targetSlice | 指示目標(biāo)能力切片。此參數(shù)不能為空。 |
Intent | 表示切換過程中攜帶的信息,不能為空。 |
請(qǐng)求代碼 | 指示定制的請(qǐng)求代碼,不能為負(fù)數(shù)。 |
也可以看看:
setResult(Intent),onResult(int,Intent)
public final void setResult(Intent resultData)
設(shè)置銷毀能力切片時(shí)要返回的數(shù)據(jù)。
當(dāng)能力切片調(diào)用 Terminate()方法時(shí),當(dāng)前方法設(shè)置的結(jié)果數(shù)據(jù)將傳輸?shù)秸{(diào)用方。
參數(shù):
參數(shù)名稱 | 參數(shù)說明 |
---|---|
resultData | 指示在破壞能力切片之后返回的數(shù)據(jù)。您可以定義返回的數(shù)據(jù)。該值可以為空。 |
也可以看看:
presentForResult(AbilitySlice,Intent,int),onResult(int,Intent)
公共最終無效終止()
摧毀當(dāng)前能力切片。
當(dāng)前能力切片調(diào)用此方法銷毀自身時(shí),由 setResult(ohos.aafwk.content.Intent)設(shè)置的結(jié)果數(shù)據(jù)將返回給調(diào)用方。如果要銷毀的片是其宿主能力的唯一片,則該能力也將被摧毀。否則,該能力將不會(huì)受到影響。
public void startAbility(Intent intent)
開始一項(xiàng)新技能。
技能切片也可以使用此方法來啟動(dòng)新技能。與 Ability#startAbility(Intent)方法的功能相似,系統(tǒng)會(huì)根據(jù)intent參數(shù)的值從已安裝的能力中定位目標(biāo)能力,然后啟動(dòng)它。
參數(shù):
參數(shù)名稱 | 參數(shù)說明 |
---|---|
Intent | 指示啟動(dòng)的能力。 |
public void startAbility(Intent intent,AbilityOptions 選項(xiàng))
從選項(xiàng)開始新技能。
技能切片也可以使用此方法來啟動(dòng)新技能。與 Ability#startAbility(Intent,AbilityOptions)方法的功能相似,系統(tǒng)會(huì)根據(jù) intent 參數(shù)的值從已安裝的能力中定位目標(biāo)能力,然后啟動(dòng)它。
參數(shù):
參數(shù)名稱 | 參數(shù)說明 |
---|---|
intent | 指示啟動(dòng)的能力。 |
選項(xiàng) | 能力選項(xiàng)轉(zhuǎn)移到其他能力。 |
public void startAbilityForResult(Intent intent,int requestCode)
啟動(dòng)一個(gè)異能并在該異能被銷毀時(shí)返回執(zhí)行結(jié)果。
此方法提供的功能與 Ability#startAbilityForResult(Intent,int)方法相同。
參數(shù):
參數(shù)名稱 | 參數(shù)說明 |
---|---|
Intent | 指示啟動(dòng)的能力。 |
請(qǐng)求代碼 | 指示功能啟動(dòng)后返回的請(qǐng)求代碼。您可以定義請(qǐng)求代碼以標(biāo)識(shí)能力返回的結(jié)果。取值范圍是 0?65535。 |
也可以看看:
onAbilityResult(int,int,Intent)
public final boolean stopAbility(Intent intent)throws IllegalArgumentException,IllegalStateException
破壞使用服務(wù)模板的能力。
此方法提供的功能與 Ability#stopAbility(Intent)方法相同。
指定者:
覆寫:
參數(shù):
參數(shù)名稱 | 參數(shù)說明 |
---|---|
Intent | 表示使用服務(wù)模板的能力。 |
返回值:
如果成功銷毀了使用服務(wù)模板的能力,則返回 true;否則,返回 true。否則返回 false。
Throws:
Throws名稱 | Throws說明 |
---|---|
IllegalArgumentException | 如果輸入?yún)?shù)為 null,則Throws此異常。 |
IllegalStateException | 如果功能未初始化,則Throws此異常。 |
也可以看看:
公共無效 terminateAbility()
破壞主機(jī)能力。
此方法提供的功能與 Ability#terminateAbility()方法相同。
指定者:
接口 Context中的 terminateAbility
覆寫:
terminateAbility 類 AbilityContext
也可以看看:
public final boolean connectAbility(Intent intent,IAbilityConnection conn)throws IllegalArgumentException,IllegalStateException
將主持人能力與使用服務(wù)模板的能力聯(lián)系起來。
此方法提供的功能與 Ability#connectAbility(Intent,IAbilityConnection)方法相同。
指定者:
覆寫:
類 AbilityContext 中的connectAbility
參數(shù):
參數(shù)名稱 | 參數(shù)說明 |
---|---|
Intent | 表示使用服務(wù)模板的能力。 |
康恩 | 指示連接能力切片時(shí)轉(zhuǎn)移的回調(diào)對(duì)象。 |
返回值:
如果連接成功,則返回 true;否則,返回 false。否則返回 false。
Throws:
Throws名稱 | Throws說明 |
---|---|
IllegalStateException | 如果能力或能力切片未初始化,則Throws此異常。 |
IllegalArgumentException | 如果輸入?yún)?shù)為 null,則Throws此異常。 |
也可以看看:
Context.connectAbility(Intent,IAbilityConnection)
public final void disconnectAbility(IAbilityConnection conn)throws IllegalArgumentException,IllegalStateException
將主機(jī)功能與使用服務(wù)模板的功能斷開連接。
此方法提供的功能與 Ability#disconnectAbility(IAbilityConnection)方法相同。
指定者:
覆寫:
disconnectAbility 類 AbilityContext
參數(shù):
參數(shù)名稱 | 參數(shù)說明 |
---|---|
康恩 | 指示連接能力切片時(shí)轉(zhuǎn)移的回調(diào)對(duì)象。 |
Throws:
Throws名稱 | Throws說明 |
---|---|
IllegalStateException | 如果能力或能力切片未初始化,則Throws此異常。 |
IllegalArgumentException | 如果輸入?yún)?shù)為 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.
將主機(jī)功能遷移到同一分布式網(wǎng)絡(luò)上的另一臺(tái)設(shè)備。
此方法提供的功能與 Ability#continueAbility()方法相同。
Throws:
Throws名稱 | Throws說明 |
---|---|
IllegalStateException | 如果主機(jī)能力未初始化或處于不允許此操作的狀態(tài)(例如正在遷移),則Throws此異常。 |
UnsupportedOperationException | 如果主持人功能未實(shí)現(xiàn) IAbilityContinuation 接口,則Throws此異常。 |
公共無效的 continuAbility (string deviceId)Throws IllegalStateException,UnsupportedOperationException
將主機(jī)功能遷移到同一分布式網(wǎng)絡(luò)上的給定設(shè)備。
此方法提供的功能與 Ability#continueAbility(String)方法相同。
參數(shù):
參數(shù)名稱 | 參數(shù)說明 |
---|---|
設(shè)備編號(hào) | 指示主機(jī)功能將遷移到的目標(biāo)設(shè)備的 ID。如果此參數(shù)為 null,則此方法與 continueAbility()具有相同的效果。 |
Throws:
Throws名稱 | Throws說明 |
---|---|
IllegalStateException | 如果主機(jī)能力未初始化或處于不允許此操作的狀態(tài)(例如正在遷移),則Throws此異常。 |
UnsupportedOperationException | 如果主持人功能未實(shí)現(xiàn) IAbilityContinuation 接口,則Throws此異常。 |
公共無效的 continueAbilityReversible()Throws IllegalStateException,UnsupportedOperationException
以可逆的方式將主機(jī)功能遷移到同一分布式網(wǎng)絡(luò)上的另一臺(tái)設(shè)備,該功能允許將該功能通過 reverseContinueAbility()遷移回本地設(shè)備 。
此方法提供的功能與 Ability#continueAbilityReversible() 方法相同。
Throws:
Throws名稱 | Throws說明 |
---|---|
IllegalStateException | 如果主機(jī)能力未初始化或處于不允許此操作的狀態(tài)(例如正在遷移),則Throws此異常。 |
UnsupportedOperationException | 如果主持人功能未實(shí)現(xiàn) IAbilityContinuation 接口,則Throws此異常。 |
public void continueAbility (String deviceId) throws IllegalStateException,UnsupportedOperationException
以可逆的方式將主機(jī)功能遷移到同一分布式網(wǎng)絡(luò)上的另一臺(tái)設(shè)備,該功能允許將該功能通過reverseContinueAbility()遷移回本地設(shè)備 。
此方法提供的功能與 Ability#continueAbilityReversible(String)方法相同。
參數(shù):
參數(shù)名稱 | 參數(shù)說明 |
---|---|
設(shè)備編號(hào) | 指示主機(jī)功能將遷移到的目標(biāo)設(shè)備的ID。如果此參數(shù)為null,則此方法與 continueAbilityReversible()具有相同的效果。 |
Throws:
Throws名稱 | Throws說明 |
---|---|
IllegalStateException | 如果主機(jī)能力未初始化或處于不允許此操作的狀態(tài)(例如正在遷移),則Throws此異常。 |
UnsupportedOperationException | 如果主持人功能未實(shí)現(xiàn) IAbilityContinuation 接口,則Throws此異常。 |
public boolean reverseContinueAbility()throws IllegalStateException,UnsupportedOperationException
將主機(jī)功能從同一分布式網(wǎng)絡(luò)上的另一臺(tái)設(shè)備遷移回本地設(shè)備。
此方法提供的功能與 Ability#reverseContinueAbility() 方法相同。
返回值:
如果遷移請(qǐng)求成功,則返回 true;否則,返回 true。否則返回 false。
Throws:
Throws名稱 | Throws說明 |
---|---|
IllegalStateException | 如果宿主功能未涉及可逆遷移過程,或者處于不允許此操作的狀態(tài)(例如正在將其遷移回),則Throws此異常。 |
UnsupportedOperationException | 如果主持人功能未實(shí)現(xiàn) IAbilityContinuation 接口,則Throws此異常。 |
public final ContinuationState getContinuationState() throws UnsupportedOperationException
獲得宿主能力的遷移狀態(tài)。
此方法提供的功能與 Ability#getContinuationState()方法相同。
返回值:
返回遷移狀態(tài)。
Throws:
Throws名稱 | Throws說明 |
---|---|
UnsupportedOperationException | 如果主持人功能未實(shí)現(xiàn) IAbilityContinuation 接口,則Throws此異常。 |
公共最終string getOriginalDeviceId()Throws UnsupportedOperationException
獲取從其遷移主機(jī)功能的源設(shè)備的 ID。
此方法提供的功能與 Ability#getOriginalDeviceId()方法相同。
返回值:
返回源設(shè)備 ID。
Throws:
Throws名稱 | Throws說明 |
---|---|
UnsupportedOperationException | 如果主持人功能未實(shí)現(xiàn) IAbilityContinuation 接口,則Throws此異常。 |
public void setDisplayOrientation(AbilityInfo.DisplayOrientation requestedOrientation)
設(shè)置主持人能力的顯示方向。
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.
如果某個(gè)能力處于前臺(tái),該設(shè)置將立即生效。否則,該設(shè)置將在該異能返回到前景時(shí)生效。
指定者:
接口 Context中的setDisplayOrientation
覆寫:
類 AbilityContext中的setDisplayOrientation
參數(shù):
參數(shù)名稱 | 參數(shù)說明 |
---|---|
請(qǐng)求的方向 | 指示顯示方向,可以是“ jpg”,“ LANDSCAPE”,“ PORTRAIT”或“ FOLLOWRECENT”。 |
也可以看看:
Context.setDisplayOrientation(AbilityInfo.DisplayOrientation)
public boolean acquisitionAbilityFormAsync(Intent intent,AbilityForm.OnAcquiredCallback createdCallback)
請(qǐng)求目標(biāo)能力提供的 AbilityForm 實(shí)例。
此方法異步執(zhí)行。獲取 AbilityForm 實(shí)例后,系統(tǒng)將回調(diào) OnAcquiredCallback 方法。如果目標(biāo)功能不使用 Page 模板或不提供 AbilityForm 功能,則不會(huì)通知呼叫者。
要使用此方法,您的應(yīng)用程序必須具有 ohos.permission.REQUIRE_FORM 權(quán)限。該權(quán)限僅適用于系統(tǒng)應(yīng)用程序。如果呼叫者沒有權(quán)限,則返回 false。
參數(shù):
參數(shù)名稱 | 參數(shù)說明 |
---|---|
intent | 指示目標(biāo)能力。 |
earnedCallback | 指示異步獲取 AbilityForm 實(shí)例后的通知回調(diào)。 |
返回值:
如果請(qǐng)求發(fā)送成功,則返回 true;否則,返回 false。否則返回 false。
公共無效發(fā)布 AbilityForm(AbilityForm 能力表單)
釋放主機(jī)能力的指定 AbilityForm 實(shí)例。
參數(shù):
參數(shù)名稱 | 參數(shù)說明 |
---|---|
能力表 | 指示要釋放的 AbilityForm 實(shí)例。 |
public final Lifecycle getLifecycle()
獲取當(dāng)前能力切片的 Lifecycle對(duì)象。
指定者:
返回值:
返回Lifecycle對(duì)象。
public final Ability getAbility()
獲得該切片所屬的能力。
返回值:
歸還能力。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: