AppFunctionManager.RegisterAppFunction Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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)).
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.