Language

AppFunctionManager.RegisterAppFunction メソッド

定義

executeAppFunction(AppInteractionSession、ExecuteAppFunctionRequest、Executor、CancellationSignal、OutcomeReceiver) を使用して実行できるアプリ関数のランタイム実装を登録します。

[Android.Runtime.Register("registerAppFunction", "(Ljava/lang/String;Ljava/util/concurrent/Executor;Landroid/app/appfunctions/AppFunction;)Landroid/app/appfunctions/AppFunctionRegistration;", "", ApiSince=37)]
public Android.App.AppFunctions.IAppFunctionRegistration RegisterAppFunction(string functionIdentifier, Java.Util.Concurrent.IExecutor executor, Android.App.AppFunctions.IAppFunction appFunction);
[<Android.Runtime.Register("registerAppFunction", "(Ljava/lang/String;Ljava/util/concurrent/Executor;Landroid/app/appfunctions/AppFunction;)Landroid/app/appfunctions/AppFunctionRegistration;", "", ApiSince=37)>]
member this.RegisterAppFunction : string * Java.Util.Concurrent.IExecutor * Android.App.AppFunctions.IAppFunction -> Android.App.AppFunctions.IAppFunctionRegistration

パラメーター

functionIdentifier
String

アプリの XML リソース宣言のエントリと一致する必要がある関数の一意識別子。 この値は null にすることはできません。

executor
IExecutor

関数が呼び出される Executor。 この値は null にすることはできません。

appFunction
IAppFunction

関数がトリガーされたときに実行される AppFunction 実装。 この値は null にすることはできません。

返品

関数の登録を解除するために使用できる AppFunctionRegistration オブジェクト。 この値は null にすることはできません。

属性

注釈

executeAppFunction(AppInteractionSession、ExecuteAppFunctionRequest、Executor、CancellationSignal、OutcomeReceiver) を使用して実行できるアプリ関数のランタイム実装を登録します。

このメソッドによって提供されるアプリ関数を対象とする executeAppFunction(AppInteractionSession,ExecuteAppFunctionRequest, Executor, CancellationSignal, OutcomeReceiver) は、指定された実装の AppFunction.onExecuteAppFunction メソッドをトリガーします。ただし、プロセスが登録を凍結せず、コンテキストを登録しても破棄されません (登録は削除されます)。

アプリケーション レベルの <property> android.app.appfunctions という名前を使用して、AndroidManifest.xml でアプリ関数を宣言する必要があります。 XML スキーマの詳細については、AppFunctionMetadata を参照してください (以下の例your_app_functions.xml)。

<application ...>
<property
      android:name="android.app.appfunctions"
      android:value="your_app_functions.xml" />
  ...
</application>

関数の実装は、アクティビティまたはサービス コンテキストからのみ登録できます。 アクティビティから登録する場合は、関数定義のAppFunctionMetadata.SCOPE_ACTIVITYを強くお考えください。

functionIdentifier は、アプリのアプリケーション レベルの XML 資産で宣言されたアプリ関数に対応している必要があります。 識別子が見つからない場合、このメソッドは IllegalArgumentException をスローします。 AppFunctionMetadata.getScope の規則に基づいて重複する関数を登録しようとすると、IllegalStateException がスローされます。

複数の関数を一度に登録するには、より効率的な代替手段として registerAppFunctions(List) を使用することを検討してください。

システムは、登録されている限り、指定された AppFunction 実装への厳密な参照を保持します。 メモリ リークを防ぎ、関数が使用できなくなったことをシステムが認識できるようにするには、関数が関連しなくなった場合 (Activity.onStop() や Service.stopForeground(boolean)の前など) に AppFunctionRegistration.unregister を明示的に呼び出す必要があります。

android.app.appfunctions.AppFunctionManager.registerAppFunctionの Android リファレンス。

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

適用対象