Lenguaje

AppFunctionManager.RegisterAppFunction Método

Definición

Registra una implementación en tiempo de ejecución para una función de aplicación, que se puede ejecutar mediante 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

Parámetros

functionIdentifier
String

Identificador único de la función, que debe coincidir con una entrada en las declaraciones de recursos XML de la aplicación. Este valor no puede ser nulo.

executor
IExecutor

Ejecutor en el que se invocará la función. Este valor no puede ser nulo.

appFunction
IAppFunction

La implementación de AppFunction que se ejecutará cuando se desencadene la función. Este valor no puede ser nulo.

Devoluciones

Objeto AppFunctionRegistration que se puede usar para anular el registro de la función. Este valor no puede ser nulo.

Atributos

Comentarios

Registra una implementación en tiempo de ejecución para una función de aplicación, que se puede ejecutar mediante executeAppFunction(AppInteractionSession, ExecuteAppFunctionRequest, Executor, CancellationSignal, OutcomeReceiver).

executeAppFunction(AppInteractionSession, ExecuteAppFunctionRequest, Executor, CancellationSignal, OutcomeReceiver) que tiene como destino una función de aplicación proporcionada por este método desencadenará el método AppFunction.onExecuteAppFunction de la implementación proporcionada, siempre y cuando el proceso que lo registre no esté inmovilizado y el registro context no se destruya (en cuyo momento se quitará el registro).

Debe declarar la función de aplicación en el AndroidManifest.xml mediante una propiedad> de nivel <de aplicación denominada android.app.appfunctions. Consulte AppFunctionMetadata para obtener más información sobre el esquema XML (your_app_functions.xml en el ejemplo siguiente).

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

Las implementaciones de función solo se pueden registrar desde contextos de actividad o servicio. Si se registra desde una actividad, considere encarecidamente la posibilidad de AppFunctionMetadata.SCOPE_ACTIVITY para la definición de la función.

FunctionIdentifier debe corresponder a una función de aplicación declarada en los recursos XML de nivel de aplicación de la aplicación. Si no se encuentra el identificador, este método iniciará una excepción IllegalArgumentException. Si intenta registrar una función duplicada basada en las reglas de AppFunctionMetadata.getScope, se producirá una excepción IllegalStateException.

Para registrar varias funciones a la vez, considere la posibilidad de usar registerAppFunctions(List) como alternativa más eficaz.

El sistema contiene una referencia fuerte a la implementación de AppFunction proporcionada siempre que se registre. Para evitar pérdidas de memoria y asegurarse de que el sistema tenga en cuenta que la función ya no está disponible, debe llamar explícitamente a AppFunctionRegistration.unregister cuando la función ya no sea relevante (por ejemplo, en Activity.onStop() o antes de Service.stopForeground(boolean)).

Referencia de Android para android.app.appfunctions.AppFunctionManager.registerAppFunction.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

Se aplica a