IComponentCallbacks2 Schnittstelle
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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 |
| 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 |
| 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 |
| 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 |
| 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 |
| JavaAs<TResult>(IJavaPeerable) |
Versuchen Sie, die Eingabe |
| 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 |