Lingua

AppFunctionManager.RegisterAppFunction Metodo

Definizione

Registra un'implementazione di runtime per una funzione dell'app, che può essere eseguita usando 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

Parametri

functionIdentifier
String

Identificatore univoco per la funzione, che deve corrispondere a una voce nelle dichiarazioni di risorse XML dell'app. Questo valore non può essere Null.

executor
IExecutor

Executor in cui verrà richiamata la funzione. Questo valore non può essere Null.

appFunction
IAppFunction

Implementazione appFunction da eseguire quando viene attivata la funzione. Questo valore non può essere Null.

Valori restituiti

Oggetto AppFunctionRegistration che può essere usato per annullare la registrazione della funzione. Questo valore non può essere Null.

Attributi

Commenti

Registra un'implementazione di runtime per una funzione dell'app, che può essere eseguita usando executeAppFunction(AppInteractionSession, ExecuteAppFunctionRequest, Executor, CancellationSignal, OutcomeReceiver).

executeAppFunction(AppInteractionSession, ExecuteAppFunctionRequest, Executor, CancellationSignal, OutcomeReceiver) destinata a una funzione dell'app fornita da questo metodo attiverà il metodo AppFunction.onExecuteAppFunction dell'implementazione fornita, purché il processo di registrazione non sia bloccato e il contesto che lo registra non venga eliminato definitivamente (a quel punto la registrazione verrà rimossa).

È necessario dichiarare la funzione dell'app nel AndroidManifest.xml usando una proprietà> a livello <di applicazione denominata android.app.appfunctions. Vedere AppFunctionMetadata per informazioni dettagliate su XML Schema (your_app_functions.xml nell'esempio seguente).

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

Le implementazioni di funzione possono essere registrate solo da contesti di attività o di servizio. Se si esegue la registrazione da un'attività, prendere in considerazione AppFunctionMetadata.SCOPE_ACTIVITY per la definizione della funzione.

FunctionIdentifier deve corrispondere a una funzione dell'app dichiarata negli asset XML a livello di applicazione dell'app. Se l'identificatore non viene trovato, questo metodo genererà un'eccezione IllegalArgumentException. Il tentativo di registrare una funzione duplicata in base alle regole di AppFunctionMetadata.getScope genererà un'eccezione IllegalStateException.

Per registrare più funzioni contemporaneamente, è consigliabile usare registerAppFunctions(List) come alternativa più efficiente.

Il sistema contiene un riferimento sicuro all'implementazione appFunction fornita, purché sia registrata. Per evitare perdite di memoria e assicurarsi che il sistema sia consapevole che la funzione non è più disponibile, è necessario chiamare in modo esplicito AppFunctionRegistration.unregister quando la funzione non è più rilevante (ad esempio, in Activity.onStop() o prima di Service.stopForeground(boolean)).

Informazioni di riferimento su Android per android.app.appfunctions.AppFunctionManager.registerAppFunction.

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

Si applica a