日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
創(chuàng)新互聯(lián)鴻蒙OS教程:鴻蒙OS Ability AbilitySlice

作為使用 Page 模板的 Ability 的基本單位 ,AbilitySlice 為服務(wù)邏輯和 UI 顯示提供了帶有載體的功能。

專注于為中小企業(yè)提供成都網(wǎng)站制作、成都做網(wǎng)站服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)常山免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了近千家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

一個(gè)能力可以有多個(gè)能力切片。您必須重寫(xiě) Ability#onStart(Intent)方法以指定默認(rèn)的能力切片。通過(guò)使用 Ability#setMainRoute(String)指定此默認(rèn)路由。

您可以繼承 AbilitySlice 類(lèi)來(lái)實(shí)現(xiàn)自己的能力切片,并在 onStart(ohos.aafwk.content.Intent)方法中設(shè)置其 UI 。可以使用 setUIContent(ohos.agp.components.ComponentContainer)或setUIContent(int)來(lái)設(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)方法來(lái)呈現(xiàn)新的能力切片,也可以使用 startAbility(ohos.aafwk.content.Intent)方法來(lái)啟動(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 子類(lèi)都具有默認(rèn)的無(wú)參數(shù)構(gòu)造函數(shù)。根據(jù) Java 的定義,僅當(dāng)您未顯式聲明參數(shù)化構(gòu)造函數(shù)時(shí),編譯器才會(huì)為該類(lèi)提供默認(rèn)的無(wú)參數(shù)構(gòu)造函數(shù)。因此,在覆蓋 AbilitySlice 子類(lèi)時(shí),如果您的實(shí)現(xiàn)具有參數(shù)化構(gòu)造函數(shù),則必須顯式聲明一個(gè)無(wú)參數(shù)構(gòu)造函數(shù)。

使用頁(yè)面模板輸入能力

您可以指定多個(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)作后,其他能力可以通過(guò)指定動(dòng)作使用您的能力,并直接打開(kāi)相應(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):

  • 初始:能力切片已加載到內(nèi)存中,但未運(yùn)行。它是所有能力切片的初始狀態(tài)。
  • 不活躍:能力切片已加載并執(zhí)行,但不是交互式的。通常,在能力切片變?yōu)?ACTIVEBackground 之前是中間狀態(tài)。在此狀態(tài)下功能切片的 UI 可能可見(jiàn),但無(wú)法接收輸入事件。
  • 活動(dòng):能力切片可見(jiàn)且具有交互性。認(rèn)為能力切片具有焦點(diǎn)。
  • 背景:能力切片是不可見(jiàn)的。如果宿主能力也處于后臺(tái),則在內(nèi)存不足的情況下會(huì)破壞能力和能力切片。

與功能類(lè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)。并非所有州都支持直接過(guò)渡。

注意:onStart(ohos.aafwk.content.Intent)方法在整個(gè)生命周期中只能調(diào)用一次。

下面提供了每種生命周期回調(diào)方法的含義以及一些最佳實(shí)踐建議。

  • onStart(ohos.aafwk.content.Intent):必須為 UI 初始化設(shè)置實(shí)現(xiàn)此方法,例如 setUIContent(int)。在整個(gè)生命周期中只能調(diào)用一次此方法。調(diào)用方可以使用Intent類(lèi)攜帶一些自定義的鍵值,并通過(guò)intent提供的方法獲取這些參數(shù)。
  • onActive():當(dāng)功能片返回活動(dòng)狀態(tài)時(shí),將調(diào)用此方法。回調(diào)之后,UI 是交互式的。
  • onInactive():當(dāng)能力切片被完全或部分覆蓋時(shí),將調(diào)用此方法?;卣{(diào)后,UI 不交互式。
  • onForeground(ohos.aafwk.content.Intent)()}:當(dāng)功能片返回到前景時(shí),將調(diào)用此方法??梢栽诨卣{(diào)中恢復(fù)或初始化應(yīng)用程序的交互邏輯。如果在能力切片返回到前景時(shí)需要指定新的自定義參數(shù),則可以傳輸新的Intent參數(shù)。
  • onBackground():當(dāng)能力切片進(jìn)入背景時(shí),將調(diào)用此方法。在這種狀態(tài)下,您不能長(zhǎng)時(shí)間執(zhí)行后臺(tái)任務(wù),因?yàn)橄到y(tǒng)可能會(huì)隨時(shí)停止后臺(tái)程序的運(yùn)行。
  • onStop():調(diào)用此方法以銷(xiāo)毀能力切片。您可以使用此方法回收資源。

在能力切片之間切換

您可以使用 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)代碼。

領(lǐng)域摘要

從接口 ohos.app 繼承的字段。Context
CONTEXT_IGNORE_SECURITY,CONTEXT_INCLUDE_CODE,CONTEXT_RESOUCE_ONLY,CONTEXT_RESTRICTED,MODE_APPEND,MODE_PRIVATE

構(gòu)造器摘要

建設(shè)者描述
AbilitySlice()

方法總結(jié)

修飾符和類(lèi)型方法描述
布爾值acquireAbilityFormAsync(Intent intent,AbilityForm.OnAcquiredCallback acquisitionCallback)請(qǐng)求目標(biāo)能力提供的 AbilityForm 實(shí)例。
布爾值connectAbility(Intent intent,IAbilityConnection conn)將主持人能力與使用服務(wù)模板的能力聯(lián)系起來(lái)。
voidcontinueAbility()將主機(jī)功能遷移到同一分布式網(wǎng)絡(luò)上的另一臺(tái)設(shè)備。
voidcontinueAbility(string deviceId)將主機(jī)功能遷移到同一分布式網(wǎng)絡(luò)上的給定設(shè)備。
voidcontinueAbilityReversible()以可逆的方式將主機(jī)功能遷移到同一分布式網(wǎng)絡(luò)上的另一臺(tái)設(shè)備,該功能允許將該功能通過(guò) reverseContinueAbility()遷移回本地設(shè)備。
voidcontinueAbilityReversible(string deviceId)以可逆的方式將主機(jī)功能遷移到同一分布式網(wǎng)絡(luò)上的另一臺(tái)設(shè)備,該功能允許將該功能通過(guò)reverseContinueAbility()遷移回本地設(shè)備。
void斷開(kāi)連接能力(IAbilityConnection conn)將主機(jī)功能與使用服務(wù)模板的功能斷開(kāi)連接。
ComponentfindComponentById(int resID)根據(jù)資源 ID 在 XML 文件中查找組件。
AbilitygetAbility()獲得該切片所屬的能力。
ContinuationStategetContinuationState()獲得宿主能力的遷移狀態(tài)。
WindowManager.LayoutConfiggetLayoutParams()獲取能力的窗口布局參數(shù)。
LifecyclegetLifecycle()獲取當(dāng)前能力切片的Lifecycle對(duì)象。
StringgetOriginalDeviceId()獲取從其遷移主機(jī)功能的源設(shè)備的 ID。
WindowgetWindow()獲取與當(dāng)前能力對(duì)應(yīng)的窗口。
protected voidonAbilityResult(int requestCode,int resultCode,Intent resultData)在調(diào)用startAbilityForResult(ohos.aafwk.content.Intent,int)以啟動(dòng)功能并返回結(jié)果時(shí)調(diào)用。
protected voidonActive()回叫時(shí)的能力片進(jìn)入 ACTIVE 狀態(tài)。
protected voidonBackground()技能片進(jìn)入背景狀態(tài)時(shí)回調(diào)。
protected voidonBackPressed()當(dāng)按下返回鍵時(shí)回叫。
protected voidonForeground (Intent intent)當(dāng)能力片的狀態(tài)從背景變?yōu)椴?strong>活動(dòng)時(shí)回調(diào)。
protected voidonInactive()當(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 voidonOrientationChanged(AbilityInfo.DisplayOrientation displayOrientation)當(dāng)屏幕的顯示方向改變時(shí)回調(diào)。
protected voidonResult(int requestCode,Intent resultIntent)返回presentForResult(ohos.aafwk.ability.AbilitySlice,ohos.aafwk.content.Intent,int)方法的結(jié)果時(shí)回調(diào)。
protected void在onStart(Intent intent)開(kāi)始功能切片時(shí)回調(diào)。
protected voidonStop()在摧毀能力片之前回叫。
void當(dāng)前(AbilitySlice targetSlice,Intent intent)提供另一個(gè)能力切片,可以是尚未開(kāi)始的能力切片或宿主能力中的現(xiàn)有能力切片。
voidpresentForResult(AbilitySlice targetSlice,Intent intent,int requestCode)呈現(xiàn)另一個(gè)能力切片,并通過(guò)調(diào)用setResult(ohos.aafwk.content.Intent)返回目標(biāo)能力切片的結(jié)果集。
voidreleaseAbilityForm(AbilityForm能力 表單)釋放主機(jī)能力的指定 AbilityForm 實(shí)例。
布爾值reverseContinueAbility()將主機(jī)功能從同一分布式網(wǎng)絡(luò)上的另一臺(tái)設(shè)備遷移回本地設(shè)備。
voidsetDisplayOrientation(AbilityInfo.DisplayOrientation  requestedOrientation)設(shè)置主持人能力的顯示方向。
voidsetIsAmbientMode(boolean isEnabled)設(shè)置窗口的輸入 AOD 模式
voidsetLayoutParams(WindowManager.LayoutConfig 參數(shù))設(shè)置功能的窗口布局參數(shù)。
voidsetResult(Intent resultData)設(shè)置銷(xiāo)毀能力切片時(shí)要返回的數(shù)據(jù)。
voidsetUIContent(int layoutRes)通過(guò)使用布局資源 ID 來(lái)擴(kuò)大布局資源。
voidsetUIContent(ComponentContainer componentContainer)通過(guò)使用 ComponentContainer來(lái)膨脹 UI 控件。
voidstartAbility(Intent intent)開(kāi)始一項(xiàng)新技能。
voidstartAbility(Intent intent,AbilityOptions 選項(xiàng))從選項(xiàng)開(kāi)始新技能。
voidstartAbilityForResult(Intent intent,int requestCode)啟動(dòng)一個(gè)異能并在該異能被銷(xiāo)毀時(shí)返回執(zhí)行結(jié)果。
布爾值stopAbility(Intent intent)破壞使用服務(wù)模板的能力。
void終止()摧毀當(dāng)前能力切片。
void終止能力()破壞主機(jī)能力。
StringtoString()提供 impl 和相應(yīng)的切片信息,以方便人類(lèi)閱讀。
從類(lèi) 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,重啟,setPattern,setShowOnLockScreen,setTheme,setTransitionAnimation,setWakeUpScreen,startAbilities,起動(dòng)性能,switchToCredentialEncryptedStorageContext,
switchToDeviceEncryptedStorageContext,terminateAbility,terminateAbilityResult,verifyCallingOrSelfPermission,verifyCallingPermission,verifyPermission,verifySelfPermission
從類(lèi) java.lang繼承的方法。object
clone,equals,finalize,getClass,hashCode,notify,notifyAll,wait,wait,wait

構(gòu)造器詳細(xì)信息

能力切片

公共 AliceSlice()

方法細(xì)節(jié)

onStart

受保護(hù)的 void onStart(Intent intent)

開(kāi)始功能切片時(shí)回調(diào)。使用 intent 參數(shù)傳送啟動(dòng)信息。

您必須為每個(gè)功能切片覆蓋此方法,并使用 setUIContent(int)或setUIContent(ohos.agp.components.ComponentContainer)方法來(lái)設(shè)置 UI。

在能力切片的整個(gè)Lifecycle中只能調(diào)用一次此方法。因此,建議您使用此方法來(lái)實(shí)現(xiàn)初始化,例如,初始化計(jì)時(shí)器或定義全局對(duì)象。

參數(shù):

參數(shù)名稱參數(shù)說(shuō)明
Intent指示能力切片開(kāi)始時(shí)攜帶的信息。

活躍

protected void onActive()

回叫時(shí)的能力片進(jìn)入 ACTIVE狀態(tài)。

能力切片中的UI ACTIVE狀態(tài)已獲得焦點(diǎn)和是交互式的。

不活動(dòng)時(shí)

protected void onInactive()

當(dāng)功能片進(jìn)入 INACTIVE 狀態(tài)時(shí)回調(diào) 。

INACTIVE是中間狀態(tài),并且可以立即改變到 ACTIVE背景。在此狀態(tài)下,功能片的 UI 可能可見(jiàn),但不是交互式的。建議您不要使用此方法來(lái)觸發(fā)復(fù)雜的服務(wù)邏輯。

在前景上

protected void onForeground(Intent intent)

當(dāng)能力片的狀態(tài)從背景變?yōu)椴?活動(dòng)時(shí)回調(diào) 。

能力切片返回到前景。您可以使用此方法來(lái)實(shí)現(xiàn)重新初始化或通過(guò)使用 intent 參數(shù)來(lái)調(diào)整 UI。

參數(shù):

參數(shù)名稱參數(shù)說(shuō)明
Intent指示能力切片返回不活動(dòng)狀態(tài)時(shí)攜帶的信息。

在背景上

protected void onBackground()

技能片進(jìn)入背景狀態(tài)時(shí)回調(diào) 。

處于背景狀態(tài)的能力切片的用戶界面是不可見(jiàn)的,并且不是交互式的。建議您使用此方法停止或釋放資源。

停止

protected void onStop()

在摧毀能力片之前回叫。

功能切片調(diào)用 Terminate()方法后,將回調(diào)此方法。您可以使用此方法回收資源。

能力結(jié)果

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ù)說(shuō)明
請(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)

結(jié)果

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í),銷(xiāo)毀功能片時(shí)將返回執(zhí)行結(jié)果。您可以重寫(xiě)此方法來(lái)處理結(jié)果。

參數(shù):

參數(shù)名稱參數(shù)說(shuō)明
請(qǐng)求代碼指示能力切片啟動(dòng)后返回的請(qǐng)求代碼。您可以定義請(qǐng)求代碼以標(biāo)識(shí)能力切片返回的結(jié)果。取值范圍是 0?65535。
resultIntent指示銷(xiāo)毀起始異能之后返回的數(shù)據(jù)。此參數(shù)可以為空。

也可以看看:

presentForResult(AbilitySlice,Intent,int),setResult(Intent)

方向改變

受保護(hù)的 void onOrientationChanged((AbilityInfo.DisplayOrientation displayOrientation)

當(dāng)屏幕的顯示方向改變時(shí)回調(diào)。

當(dāng)顯示方向改變時(shí),您可以重寫(xiě)此方法以實(shí)現(xiàn)您的邏輯。默認(rèn)情況下,更改顯示方向時(shí)不執(zhí)行任何操作。

參數(shù):

參數(shù)名稱參數(shù)說(shuō)明
displayOrientation指示新的顯示方向。支持以下值:DisplayOrientation#LANDSCAPE,DisplayOrientation#PORTRAIT,DisplayOrientation#FOLLOWRECENT和DisplayOrientation#UNSPECIFIED。

onBackPressed

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ù)說(shuō)明
關(guān)鍵代碼指示按下的鍵的代碼。
keyEvent指示按下事件。

返回值:

如果已處理此事件且將不進(jìn)一步傳遞,則返回 true;否則,返回 false。如果未處理此事件,則應(yīng)返回 false并應(yīng)將其傳遞給其他處理程序。

也可以看看:

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

在關(guān)鍵

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ù)說(shuō)明
關(guān)鍵代碼指示已釋放密鑰的代碼。
keyEvent指示按鍵事件。

返回值:

如果已處理此事件且將不進(jìn)一步傳遞,則返回 true;否則,返回 false。如果未處理此事件,則應(yīng)返回false并應(yīng)將其傳遞給其他處理程序。

也可以看看:

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

字符串

公共string toString()

提供 impl 和相應(yīng)的切片信息,以方便人類(lèi)閱讀。

覆寫(xiě):

類(lèi) Object中的toString

返回值:

字符串格式的信息。

獲取窗口

公共Window getWindow()

獲取與當(dāng)前能力對(duì)應(yīng)的窗口。

此方法提供的功能與 Ability#getWindow()方法相同。

返回值:

返回與當(dāng)前能力相對(duì)應(yīng)的窗口。

獲取布局參數(shù)

public WindowManager.LayoutConfig getLayoutParams()

獲取能力的窗口布局參數(shù)。必須為所有功能的窗口設(shè)置布局參數(shù)。為父窗口提供了這些參數(shù),以指定如何布置當(dāng)前功能的窗口。

此方法提供的功能與 Ability#getLayoutParams()方法相同。

返回值:

返回能力的窗口布局參數(shù);如果未設(shè)置布局參數(shù),則返回null。

設(shè)置布局參數(shù)

public void setLayoutParams(WindowManager.LayoutConfig 參數(shù))

設(shè)置功能的窗口布局參數(shù)。為父窗口提供了這些參數(shù),以指定如何布置當(dāng)前功能的窗口。

此方法提供的功能與 Ability#setLayoutParams(LayoutConfig)方法相同。

參數(shù):

參數(shù)名稱參數(shù)說(shuō)明
參數(shù)指示包含布局參數(shù)的 WindowManager.LayoutConfig 對(duì)象。此參數(shù)不能為空。

設(shè)置環(huán)境模式

public void setIsAmbientMode(boolean isEnabled)

設(shè)置窗口的輸入 AOD 模式

參數(shù):

參數(shù)名稱參數(shù)說(shuō)明
isEnabled指示是否啟用了 AOD 模式

設(shè)置UI內(nèi)容

public final void setUIContent(int layoutRes)

通過(guò)使用布局資源 ID 來(lái)擴(kuò)大布局資源。

參數(shù):

參數(shù)名稱參數(shù)說(shuō)明
layoutRes表示布局資源ID,不能為負(fù)數(shù)。

也可以看看:

setUIContent(ComponentContainer)

設(shè)置UI內(nèi)容

public void setUIContent((ComponentContainer componentContainer)

通過(guò)使用 ComponentContainer來(lái)膨脹 UI 控件 。

您可以創(chuàng)建一個(gè)包含多個(gè)組件的 ComponentContainer 實(shí)例。

參數(shù):

參數(shù)名稱參數(shù)說(shuō)明
componentContainer指示一組定制組件。

也可以看看:

setUIContent(int)

按ID查找組件

public Component findComponentById(int resID)

根據(jù)資源 ID 在 XML 文件中查找組件。

參數(shù):

參數(shù)名稱參數(shù)說(shuō)明
識(shí)別碼指示組件的資源 ID。

返回值:

如果找到記錄,則返回與 ID 對(duì)應(yīng)的組件;否則返回 null。

當(dāng)下

public final void present(AbilitySlice targetSlice,Intent intent)

提供另一個(gè)能力切片,可以是尚未開(kāi)始的能力切片或宿主能力中的現(xiàn)有能力切片。

您可以使用 Intent對(duì)象傳遞必需的信息。

僅在以下情況下可以調(diào)用此方法:

  • 主機(jī)能力在 ACTIVE狀態(tài)。
  • 目標(biāo)能力切片未啟動(dòng)或破壞。
  • 宿主技能中的技能片數(shù)不超過(guò) 1024。

參數(shù):

參數(shù)名稱參數(shù)說(shuō)明
targetSlice指示目標(biāo)能力切片,不能為空。
intent表示切換過(guò)程中攜帶的信息,不能為空。

也可以看看:

presentForResult(AbilitySlice,Intent,int)

呈現(xiàn)結(jié)果

public final void presentForResult(AbilitySlice targetSlice,Intent intent,int requestCode)

呈現(xiàn)另一個(gè)能力切片,并通過(guò)調(diào)用 setResult(ohos.aafwk.content.Intent) 返回目標(biāo)能力切片的結(jié)果集 。

您可以使用 Intent 對(duì)象傳遞必需的信息。

僅在以下情況下可以調(diào)用此方法:

  • 目前的能力片的主機(jī)能力在 ACTIVE 狀態(tài)。
  • 目標(biāo)能力切片未啟動(dòng)或破壞。
  • 主持人能力中有1024個(gè)或更少的能力切片。

參數(shù):

參數(shù)名稱參數(shù)說(shuō)明
targetSlice指示目標(biāo)能力切片。此參數(shù)不能為空。
Intent表示切換過(guò)程中攜帶的信息,不能為空。
請(qǐng)求代碼指示定制的請(qǐng)求代碼,不能為負(fù)數(shù)。

也可以看看:

setResult(Intent),onResult(int,Intent)

設(shè)定結(jié)果

public final void setResult(Intent resultData)

設(shè)置銷(xiāo)毀能力切片時(shí)要返回的數(shù)據(jù)。

當(dāng)能力切片調(diào)用 Terminate()方法時(shí),當(dāng)前方法設(shè)置的結(jié)果數(shù)據(jù)將傳輸?shù)秸{(diào)用方。

參數(shù):

參數(shù)名稱參數(shù)說(shuō)明
resultData指示在破壞能力切片之后返回的數(shù)據(jù)。您可以定義返回的數(shù)據(jù)。該值可以為空。

也可以看看:

presentForResult(AbilitySlice,Intent,int),onResult(int,Intent)

終止

公共最終無(wú)效終止()

摧毀當(dāng)前能力切片。

當(dāng)前能力切片調(diào)用此方法銷(xiāo)毀自身時(shí),由 setResult(ohos.aafwk.content.Intent)設(shè)置的結(jié)果數(shù)據(jù)將返回給調(diào)用方。如果要銷(xiāo)毀的片是其宿主能力的唯一片,則該能力也將被摧毀。否則,該能力將不會(huì)受到影響。

啟動(dòng)能力

public void startAbility(Intent intent)

開(kāi)始一項(xiàng)新技能。

技能切片也可以使用此方法來(lái)啟動(dòng)新技能。與 Ability#startAbility(Intent)方法的功能相似,系統(tǒng)會(huì)根據(jù)intent參數(shù)的值從已安裝的能力中定位目標(biāo)能力,然后啟動(dòng)它。

參數(shù):

參數(shù)名稱參數(shù)說(shuō)明
Intent指示啟動(dòng)的能力。

啟動(dòng)能力

public void startAbility(Intent intent,AbilityOptions 選項(xiàng))

從選項(xiàng)開(kāi)始新技能。

技能切片也可以使用此方法來(lái)啟動(dòng)新技能。與 Ability#startAbility(Intent,AbilityOptions)方法的功能相似,系統(tǒng)會(huì)根據(jù) intent 參數(shù)的值從已安裝的能力中定位目標(biāo)能力,然后啟動(dòng)它。

參數(shù):

參數(shù)名稱參數(shù)說(shuō)明
intent指示啟動(dòng)的能力。
選項(xiàng)能力選項(xiàng)轉(zhuǎn)移到其他能力。

開(kāi)始結(jié)果的能力

public void startAbilityForResult(Intent intent,int requestCode)

啟動(dòng)一個(gè)異能并在該異能被銷(xiāo)毀時(shí)返回執(zhí)行結(jié)果。

此方法提供的功能與 Ability#startAbilityForResult(Intent,int)方法相同。

參數(shù):

參數(shù)名稱參數(shù)說(shuō)明
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)方法相同。

指定者:

接口ContextstopAbility

覆寫(xiě):

stopAbility 類(lèi) AbilityContext

參數(shù):

參數(shù)名稱參數(shù)說(shuō)明
Intent表示使用服務(wù)模板的能力。

返回值:

如果成功銷(xiāo)毀了使用服務(wù)模板的能力,則返回 true;否則,返回 true。否則返回 false。

Throws:

Throws名稱Throws說(shuō)明
IllegalArgumentException如果輸入?yún)?shù)為 null,則Throws此異常。
IllegalStateException如果功能未初始化,則Throws此異常。

也可以看看:

Context.stopAbility(Intent)

終止能力

公共無(wú)效 terminateAbility()

破壞主機(jī)能力。

此方法提供的功能與 Ability#terminateAbility()方法相同。

指定者:

接口 Context中的 terminateAbility

覆寫(xiě):

terminateAbility 類(lèi) AbilityContext

也可以看看:

Context.terminateAbility()

連接能力

public final boolean connectAbility(Intent intent,IAbilityConnection conn)throws IllegalArgumentException,IllegalStateException

將主持人能力與使用服務(wù)模板的能力聯(lián)系起來(lái)。

此方法提供的功能與 Ability#connectAbility(Intent,IAbilityConnection)方法相同。

指定者:

接口Context connectAbility

覆寫(xiě):

類(lèi) AbilityContext 中的connectAbility

參數(shù):

參數(shù)名稱參數(shù)說(shuō)明
Intent表示使用服務(wù)模板的能力。
康恩指示連接能力切片時(shí)轉(zhuǎn)移的回調(diào)對(duì)象。

返回值:

如果連接成功,則返回 true;否則,返回 false。否則返回 false。

Throws:

Throws名稱Throws說(shuō)明
IllegalStateException如果能力或能力切片未初始化,則Throws此異常。
IllegalArgumentException如果輸入?yún)?shù)為 null,則Throws此異常。

也可以看看:

Context.connectAbility(Intent,IAbilityConnection)

斷開(kāi)能力

public final void disconnectAbility(IAbilityConnection conn)throws IllegalArgumentException,IllegalStateException

將主機(jī)功能與使用服務(wù)模板的功能斷開(kāi)連接。

此方法提供的功能與 Ability#disconnectAbility(IAbilityConnection)方法相同。

指定者:

接口ContextdisconnectAbility

覆寫(xiě):

disconnectAbility 類(lèi) AbilityContext

參數(shù):

參數(shù)名稱參數(shù)說(shuō)明
康恩指示連接能力切片時(shí)轉(zhuǎn)移的回調(diào)對(duì)象。

Throws:

Throws名稱Throws說(shuō)明
IllegalStateException如果能力或能力切片未初始化,則Throws此異常。
IllegalArgumentException如果輸入?yún)?shù)為 null,則Throws此異常。

也可以看看:

Context.disconnectAbility(IAbilityConnection)

繼續(xù)能力

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說(shuō)明
IllegalStateException如果主機(jī)能力未初始化或處于不允許此操作的狀態(tài)(例如正在遷移),則Throws此異常。
UnsupportedOperationException如果主持人功能未實(shí)現(xiàn) IAbilityContinuation 接口,則Throws此異常。

繼續(xù)能力

公共無(wú)效的 continuAbility (string deviceId)Throws IllegalStateException,UnsupportedOperationException

將主機(jī)功能遷移到同一分布式網(wǎng)絡(luò)上的給定設(shè)備。

此方法提供的功能與 Ability#continueAbility(String)方法相同。

參數(shù):

參數(shù)名稱參數(shù)說(shuō)明
設(shè)備編號(hào)指示主機(jī)功能將遷移到的目標(biāo)設(shè)備的 ID。如果此參數(shù)為 null,則此方法與 continueAbility()具有相同的效果。

Throws:

Throws名稱Throws說(shuō)明
IllegalStateException如果主機(jī)能力未初始化或處于不允許此操作的狀態(tài)(例如正在遷移),則Throws此異常。
UnsupportedOperationException如果主持人功能未實(shí)現(xiàn) IAbilityContinuation 接口,則Throws此異常。

連續(xù)能力可逆

公共無(wú)效的 continueAbilityReversible()Throws IllegalStateException,UnsupportedOperationException

以可逆的方式將主機(jī)功能遷移到同一分布式網(wǎng)絡(luò)上的另一臺(tái)設(shè)備,該功能允許將該功能通過(guò) reverseContinueAbility()遷移回本地設(shè)備 。

此方法提供的功能與 Ability#continueAbilityReversible() 方法相同。

Throws:

Throws名稱Throws說(shuō)明
IllegalStateException如果主機(jī)能力未初始化或處于不允許此操作的狀態(tài)(例如正在遷移),則Throws此異常。
UnsupportedOperationException如果主持人功能未實(shí)現(xiàn) IAbilityContinuation 接口,則Throws此異常。

連續(xù)能力可逆

public void continueAbility (String deviceId) throws IllegalStateException,UnsupportedOperationException

以可逆的方式將主機(jī)功能遷移到同一分布式網(wǎng)絡(luò)上的另一臺(tái)設(shè)備,該功能允許將該功能通過(guò)reverseContinueAbility()遷移回本地設(shè)備 。

此方法提供的功能與 Ability#continueAbilityReversible(String)方法相同。

參數(shù):

參數(shù)名稱參數(shù)說(shuō)明
設(shè)備編號(hào)指示主機(jī)功能將遷移到的目標(biāo)設(shè)備的ID。如果此參數(shù)為null,則此方法與 continueAbilityReversible()具有相同的效果。

Throws:

Throws名稱Throws說(shuō)明
IllegalStateException如果主機(jī)能力未初始化或處于不允許此操作的狀態(tài)(例如正在遷移),則Throws此異常。
UnsupportedOperationException如果主持人功能未實(shí)現(xiàn) IAbilityContinuation 接口,則Throws此異常。

反向連續(xù)能力

public boolean reverseContinueAbility()throws IllegalStateException,UnsupportedOperationException

將主機(jī)功能從同一分布式網(wǎng)絡(luò)上的另一臺(tái)設(shè)備遷移回本地設(shè)備。

此方法提供的功能與 Ability#reverseContinueAbility() 方法相同。

返回值:

如果遷移請(qǐng)求成功,則返回 true;否則,返回 true。否則返回 false。

Throws:

Throws名稱Throws說(shuō)明
IllegalStateException如果宿主功能未涉及可逆遷移過(guò)程,或者處于不允許此操作的狀態(tài)(例如正在將其遷移回),則Throws此異常。
UnsupportedOperationException如果主持人功能未實(shí)現(xiàn) IAbilityContinuation 接口,則Throws此異常。

獲取延續(xù)狀態(tài)

public final ContinuationState getContinuationState() throws UnsupportedOperationException

獲得宿主能力的遷移狀態(tài)。

此方法提供的功能與 Ability#getContinuationState()方法相同。

返回值:

返回遷移狀態(tài)。

Throws:

Throws名稱Throws說(shuō)明
UnsupportedOperationException如果主持人功能未實(shí)現(xiàn) IAbilityContinuation 接口,則Throws此異常。

獲取原始 DeviceId

公共最終string getOriginalDeviceId()Throws UnsupportedOperationException

獲取從其遷移主機(jī)功能的源設(shè)備的 ID。

此方法提供的功能與 Ability#getOriginalDeviceId()方法相同。

返回值:

返回源設(shè)備 ID。

Throws:

Throws名稱Throws說(shuō)明
UnsupportedOperationException如果主持人功能未實(shí)現(xiàn) IAbilityContinuation 接口,則Throws此異常。

設(shè)置顯示方向

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

覆寫(xiě):

類(lèi) AbilityContext中的setDisplayOrientation

參數(shù):

參數(shù)名稱參數(shù)說(shuō)明
請(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)用程序。如果呼叫者沒(méi)有權(quán)限,則返回 false。

參數(shù):

參數(shù)名稱參數(shù)說(shuō)明
intent指示目標(biāo)能力。
earnedCallback指示異步獲取 AbilityForm 實(shí)例后的通知回調(diào)。

返回值:

如果請(qǐng)求發(fā)送成功,則返回 true;否則,返回 false。否則返回 false。

釋放能力表

公共無(wú)效發(fā)布 AbilityForm(AbilityForm 能力表單)

釋放主機(jī)能力的指定 AbilityForm 實(shí)例。

參數(shù):

參數(shù)名稱參數(shù)說(shuō)明
能力表指示要釋放的 AbilityForm 實(shí)例。

獲取生命周期

public final Lifecycle getLifecycle()

獲取當(dāng)前能力切片的 Lifecycle對(duì)象。

指定者:

getLifecycle 接口 ILifecycle

返回值:

返回Lifecycle對(duì)象。

獲得能力

public final Ability getAbility()

獲得該切片所屬的能力。

返回值:

歸還能力。


分享標(biāo)題:創(chuàng)新互聯(lián)鴻蒙OS教程:鴻蒙OS Ability AbilitySlice
本文網(wǎng)址:http://www.dlmjj.cn/article/dpsghio.html