IComponentCallbacks2 Interfaccia

Definizione

Interfaccia estesa ComponentCallbacks con un nuovo callback per la gestione della memoria più granulare.

[Android.Runtime.Register("android/content/ComponentCallbacks2", "", "Android.Content.IComponentCallbacks2Invoker")]
public interface IComponentCallbacks2 : Android.Content.IComponentCallbacks, IDisposable, Java.Interop.IJavaPeerable
[<Android.Runtime.Register("android/content/ComponentCallbacks2", "", "Android.Content.IComponentCallbacks2Invoker")>]
type IComponentCallbacks2 = interface
    interface IComponentCallbacks
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
Derivato
Attributi
Implementazioni

Commenti

Interfaccia estesa ComponentCallbacks con un nuovo callback per la gestione della memoria più granulare. Questa interfaccia è disponibile in tutti i componenti dell'applicazione (android.app.Activity, android.app.Service, ContentProvidere android.app.Application).

È necessario implementare #onTrimMemory per rilasciare in modo incrementale la memoria in base ai vincoli di sistema correnti. L'uso di questo callback per rilasciare le risorse consente di fornire un sistema più reattivo generale, ma offre anche vantaggi direttamente all'esperienza utente per l'app consentendo al sistema di mantenere il processo attivo più a lungo. Ciò significa che, se non si <><esegue il> taglio delle risorse in base ai livelli di memoria definiti da questo callback, è più probabile che il sistema uccida il processo mentre viene memorizzato nella cache nell'elenco di meno recente usato (LRU), quindi richiede all'app di riavviare e ripristinare tutto lo stato quando l'utente lo torna.

I valori forniti da #onTrimMemory non rappresentano una singola progressione lineare dei limiti di memoria, ma forniscono diversi tipi di indizi sulla disponibilità della memoria:

<ul><li>Quando l'app è in esecuzione: <ol><li#TRIM_MEMORY_RUNNING_MODERATE><br>Il dispositivo sta iniziando a eseguire memoria insufficiente. L'app è in esecuzione e non terminabile. <li>#TRIM_MEMORY_RUNNING_LOW<br>Il dispositivo è in esecuzione molto più basso sulla memoria. L'app è in esecuzione e non terminabile, ma rilascia risorse inutilizzate per migliorare le prestazioni del sistema (che influisce direttamente sulle prestazioni dell'app). <li>#TRIM_MEMORY_RUNNING_CRITICAL<br>Il dispositivo è in esecuzione estremamente basso in memoria. L'app non è ancora considerata un processo terminabile, ma il sistema inizierà a uccidere i processi in background se le app non rilasciano risorse, quindi è consigliabile rilasciare risorse non critiche ora per evitare una riduzione delle prestazioni. </ol></li li><>Quando la visibilità dell'app cambia: <ol><li#TRIM_MEMORY_UI_HIDDEN><br>L'interfaccia utente dell'app non è più visibile, quindi questo è un buon momento per rilasciare risorse di grandi dimensioni usate solo dall'interfaccia utente. </ol>/li li>Quando il processo dell'app si trova nell'elenco LRU in background: <ol<>li<>><#TRIM_MEMORY_BACKGROUNDbr>Il sistema è insufficiente in memoria e il processo si trova vicino all'inizio dell'elenco LRU.< Anche se il processo dell'app non è ad alto rischio di essere terminato, il sistema potrebbe già uccidere processi nell'elenco LRU, quindi è consigliabile rilasciare risorse facili da ripristinare in modo che il processo rimanga nell'elenco e riprendere rapidamente quando l'utente torna all'app. <li>#TRIM_MEMORY_MODERATE<br>Il sistema è insufficiente in memoria e il processo si trova vicino al centro dell'elenco LRU. Se il sistema diventa ulteriormente vincolato alla memoria, è possibile che il processo venga ucciso. <li>#TRIM_MEMORY_COMPLETE<br>Il sistema è in esecuzione insufficiente sulla memoria e il processo è uno dei primi a essere uccisi se il sistema non recupera la memoria ora. Devi rilasciare assolutamente tutto ciò che non è fondamentale per riprendere lo stato dell'app.

Per supportare i livelli API inferiori a 14, è possibile usare il #onLowMemory metodo come fallback che equivale approssimativamente al ComponentCallbacks2#TRIM_MEMORY_COMPLETE livello. </li></ol>

<nota forte>:</forte> Quando il sistema inizia a uccidere i processi nell'elenco LRU, anche se funziona principalmente dal basso verso l'alto, dà alcune considerazioni a quali processi consumano più memoria e fornirà così più guadagni in memoria se uccisi. Quindi la quantità di memoria che si utilizza durante l'elenco LRU complessivamente, meglio sono le probabilità di rimanere nell'elenco e di essere in grado di riprendere rapidamente.

</li></ul>

Altre informazioni sulle diverse fasi del ciclo di vita di un processo , ad esempio ciò che significa inserire nell'elenco LRU in background, sono disponibili nel documento Processi e thread .

per android.content.ComponentCallbacks2.

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.

Proprietà

Nome Descrizione
Handle

Ottiene il valore JNI dell'oggetto Android sottostante.

(Ereditato da IJavaObject)
JniIdentityHashCode

Restituisce il valore di java.lang.System.identityHashCode() per l'istanza di cui è stato eseguito il wrapping.

(Ereditato da IJavaPeerable)
JniManagedPeerState

Stato del peer gestito.

(Ereditato da IJavaPeerable)
JniPeerMembers

Supporto per l'accesso ai membri e la chiamata.

(Ereditato da IJavaPeerable)
PeerReference

Restituisce un JniObjectReference oggetto dell'istanza dell'oggetto di cui è stato eseguito il wrapping Java.

(Ereditato da IJavaPeerable)

Metodi

Nome Descrizione
Disposed()

Chiamato quando l'istanza è stata eliminata.

(Ereditato da IJavaPeerable)
DisposeUnlessReferenced()

Se non sono presenti riferimenti in sospeso a questa istanza, chiama Dispose(); in caso contrario, non esegue alcuna operazione.

(Ereditato da IJavaPeerable)
Finalized()

Chiamato quando l'istanza è stata finalizzata.

(Ereditato da IJavaPeerable)
OnConfigurationChanged(Configuration)

Chiamato dal sistema quando la configurazione del dispositivo cambia durante l'esecuzione del componente.

(Ereditato da IComponentCallbacks)
OnLowMemory()

Questo viene chiamato quando il sistema complessivo è in esecuzione insufficiente sulla memoria e i processi in esecuzione attivamente devono ridurre l'utilizzo della memoria.

(Ereditato da IComponentCallbacks)
OnTrimMemory(TrimMemory)

Chiamato quando il sistema operativo ha determinato che è un buon momento per un processo per ridurre la memoria non richiesta dal relativo processo.

SetJniIdentityHashCode(Int32)

Impostare il valore restituito da JniIdentityHashCode.

(Ereditato da IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

Interfaccia estesa ComponentCallbacks con un nuovo callback per la gestione della memoria più granulare.

(Ereditato da IJavaPeerable)
SetPeerReference(JniObjectReference)

Impostare il valore restituito da PeerReference.

(Ereditato da IJavaPeerable)
UnregisterFromRuntime()

Annullare la registrazione di questa istanza in modo che il runtime non lo restituisca dalle chiamate future Java.Interop.JniRuntime+JniValueManager.PeekValue .

(Ereditato da IJavaPeerable)

Metodi di estensione

Nome Descrizione
GetJniTypeName(IJavaPeerable)

Ottiene il nome JNI del tipo dell'istanza selfdi .

JavaAs<TResult>(IJavaPeerable)

Provare a digitare selfTResult, verificando che la coercizione sia valida sul lato Java.

JavaCast<TResult>(IJavaObject)

Esegue una conversione del tipo di tipo controllato dal runtime Android.

JavaCast<TResult>(IJavaObject)

Interfaccia estesa ComponentCallbacks con un nuovo callback per la gestione della memoria più granulare.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Provare a digitare selfTResult, verificando che la coercizione sia valida sul lato Java.

Si applica a