IComponentCallbacks2 Schnittstelle

Definition

Rückrufe für App-Zustandsübergänge, die verwendet werden können, um die Verwaltung des Hintergrundspeichers zu verbessern.

[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
Abgeleitet
Attribute
Implementiert

Hinweise

Rückrufe für App-Zustandsübergänge, die verwendet werden können, um die Verwaltung des Hintergrundspeichers zu verbessern. Diese Schnittstelle ist in allen Anwendungskomponenten (android.app.Activity, android.app.Service, und ContentProviderandroid.app.Application) verfügbar.

Sie sollten implementieren #onTrimMemory , um Arbeitsspeicher freizugeben, wenn Ihre App in Hintergrundzustände wechselt. Auf diese Weise kann das System den Prozess Ihrer App länger im Arbeitsspeicher zwischenspeichern, sodass die App beim nächsten Mal, wenn der Benutzer Ihre App zum Vordergrund bringt, einen warmen oder heißen Start ausführt, schneller fortgesetzt und den Zustand beibehalten.

<h2>Kürzen der Speicherebenen und behandeln sie</h2>

<ul><li>#TRIM_MEMORY_UI_HIDDEN<br> Die Benutzeroberfläche Ihrer App ist nicht mehr sichtbar. Dies ist ein guter Zeitpunkt, um große Speicherzuweisungen freizugeben, die nur von der Benutzeroberfläche verwendet werden, z android.graphics.Bitmap Bitmaps. B. ressourcen im Zusammenhang mit der Videowiedergabe oder Animationen. <li>#TRIM_MEMORY_BACKGROUND<br> Der Prozess Ihrer App wird als im Hintergrund betrachtet und kann getötet werden, um Arbeitsspeicher für andere Prozesse freizugeben. Durch das Freigeben von mehr Arbeitsspeicher wird die Zeit verlängert, die Ihr Prozess im Arbeitsspeicher zwischengespeichert werden kann. Eine effektive Strategie besteht darin, Ressourcen freizugeben, die neu erstellt werden können, wenn der Benutzer zu Ihrer App zurückkehrt. </ul>

Apps, die weiterhin für den Benutzer funktionieren, wenn sie nicht sichtbar sind, können auf den #TRIM_MEMORY_UI_HIDDEN Rückruf reagieren, indem sie ihr Verhalten ändern, um die Speicherauslastung zu verringern. Ein Musikplayer kann z. B. für alle Titel in der aktuell wiedergegebenen Wiedergabeliste die volle Größe behalten, da Bitmaps im Arbeitsspeicher zwischengespeichert werden. Wenn die App hintergrundiert ist, die Musikwiedergabe jedoch fortgesetzt wird, kann die App das Zwischenspeicherungsverhalten ändern, um weniger oder kleinere Bitmaps im Arbeitsspeicher zwischenzuspeichern.

Die Ordnungswerte für Kürzungsstufen stellen eine eskalierende Serie von Speicherdruckereignissen dar, wobei werte entsprechend erhöht werden. Weitere Zustände können in Zukunft hinzugefügt werden. Daher ist es wichtig, nicht nach bestimmten Werten zu suchen, sondern zu überprüfen, ob die übergebene #onTrimMemory Ebene größer oder gleich den Von der Anwendung behandelten Ebenen ist. Beispiel:

{@code
            public void onTrimMemory(int level) {
                if (level >= TRIM_MEMORY_BACKGROUND) {
                    // Release any resources that can be rebuilt
                    // quickly when the app returns to the foreground
                    releaseResources();
                } else if (level >= TRIM_MEMORY_UI_HIDDEN) {
                    // Release UI-related resources
                    releaseUiResources();
                }
            }
            }

<strong>Note:</strong> the runtime may invoke Garbage Collection (GC) in Reaktion auf Anwendungsstatusänderungen. Es ist nicht erforderlich, GC aus Ihrer App explizit aufzurufen.

Java Dokumentation für android.content.ComponentCallbacks2.

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die von der Android Open Source Project erstellt und gemeinsam verwendet und gemäß den in der 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Eigenschaften

Name Beschreibung
Handle

Ruft den JNI-Wert des zugrunde liegenden Android-Objekts ab.

(Geerbt von IJavaObject)
JniIdentityHashCode

Gibt den Wert java.lang.System.identityHashCode() für die umbrochene Instanz zurück.

(Geerbt von IJavaPeerable)
JniManagedPeerState

Status des verwalteten Peers.

(Geerbt von IJavaPeerable)
JniObjectReferenceControlBlock

Rückrufe für App-Zustandsübergänge, die verwendet werden können, um die Verwaltung des Hintergrundspeichers zu verbessern.

(Geerbt von IJavaPeerable)
JniPeerMembers

Mitgliedszugriff und Aufrufunterstützung.

(Geerbt von IJavaPeerable)
PeerReference

Gibt eine JniObjectReference der umbrochenen Java Objektinstanz zurück.

(Geerbt von IJavaPeerable)

Methoden

Name Beschreibung
Disposed()

Wird aufgerufen, wenn die Instanz verworfen wurde.

(Geerbt von IJavaPeerable)
DisposeUnlessReferenced()

Wenn keine offenen Verweise auf diese Instanz vorhanden sind, wird nichts aufgerufen Dispose(). Andernfalls wird nichts ausgeführt.

(Geerbt von IJavaPeerable)
Finalized()

Wird aufgerufen, wenn die Instanz abgeschlossen wurde.

(Geerbt von IJavaPeerable)
OnConfigurationChanged(Configuration)

Wird vom System aufgerufen, wenn sich die Gerätekonfiguration ändert, während die Komponente ausgeführt wird.

(Geerbt von IComponentCallbacks)
OnLowMemory()

Dies wird aufgerufen, wenn das gesamte System wenig Arbeitsspeicher hat und aktiv ausgeführte Prozesse ihre Speicherauslastung kürzen sollten.

(Geerbt von IComponentCallbacks)
OnTrimMemory(TrimMemory)

Wird aufgerufen, wenn das Betriebssystem festgestellt hat, dass es eine gute Zeit für einen Prozess ist, nicht benötigte Arbeitsspeicher aus seinem Prozess zu kürzen.

SetJniIdentityHashCode(Int32)

Legen Sie den von JniIdentityHashCode.

(Geerbt von IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

Rückrufe für App-Zustandsübergänge, die verwendet werden können, um die Verwaltung des Hintergrundspeichers zu verbessern.

(Geerbt von IJavaPeerable)
SetPeerReference(JniObjectReference)

Legen Sie den von PeerReference.

(Geerbt von IJavaPeerable)
UnregisterFromRuntime()

Heben Sie die Registrierung dieser Instanz auf, damit die Laufzeit sie nicht aus zukünftigen Java.Interop.JniRuntime+JniValueManager.PeekValue Aufrufen zurückgibt.

(Geerbt von IJavaPeerable)

Erweiterungsmethoden

Name Beschreibung
GetJniTypeName(IJavaPeerable)

Ruft den JNI-Namen des Typs der Instanz selfab.

JavaAs<TResult>(IJavaPeerable)

Versuchen Sie, die Eingabe selfzu TResult erzwingen, und überprüfen Sie, ob die Koersion auf der Java Seite gültig ist.

JavaCast<TResult>(IJavaObject)

Führt eine android-laufzeitgecheckte Typkonvertierung aus.

JavaCast<TResult>(IJavaObject)

Rückrufe für App-Zustandsübergänge, die verwendet werden können, um die Verwaltung des Hintergrundspeichers zu verbessern.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Versuchen Sie, die Eingabe selfzu TResult erzwingen, und überprüfen Sie, ob die Koersion auf der Java Seite gültig ist.

Gilt für: