IComponentCallbacks2 Interfaz

Definición

Devoluciones de llamada para transiciones de estado de la aplicación que se pueden usar para mejorar la administración de memoria en segundo plano.

[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
Derivado
Atributos
Implementaciones

Comentarios

Devoluciones de llamada para transiciones de estado de la aplicación que se pueden usar para mejorar la administración de memoria en segundo plano. Esta interfaz está disponible en todos los componentes de la aplicación (android.app.Activity, android.app.Service, ContentProvidery android.app.Application).

Debes implementar #onTrimMemory para liberar memoria cuando la aplicación vaya a estados en segundo plano. Esto ayuda al sistema a mantener el proceso de la aplicación almacenado en caché durante más tiempo, de modo que la próxima vez que el usuario lleve la aplicación al primer plano, la aplicación realizará un inicio intermedio o frecuente, reanudando más rápido y conservando el estado.

<h2>Recorte los niveles de memoria y cómo controlarlos</h2>

<ul><li>#TRIM_MEMORY_UI_HIDDEN<br> La interfaz de usuario de la aplicación ya no está visible. Este es un buen momento para liberar asignaciones de memoria grandes que solo usan la interfaz de usuario, como android.graphics.Bitmap Bitmaps, o recursos relacionados con la reproducción de vídeo o animaciones. <li>#TRIM_MEMORY_BACKGROUND<br> El proceso de la aplicación se considera que está en segundo plano y se ha convertido en apto para ser eliminado para liberar memoria para otros procesos. Liberar más memoria prolongará el tiempo que el proceso puede permanecer almacenado en caché en la memoria. Una estrategia eficaz consiste en liberar recursos que se pueden volver a compilar cuando el usuario vuelve a la aplicación. </ul>

Las aplicaciones que siguen funcionando para el usuario cuando no son visibles pueden responder a la #TRIM_MEMORY_UI_HIDDEN devolución de llamada cambiando su comportamiento para favorecer el menor uso de memoria. Por ejemplo, un reproductor de música puede mantener el arte del álbum de tamaño completo para todas las pistas de la lista de reproducción actualmente como mapas de bits almacenados en caché en memoria. Cuando la aplicación está en segundo plano, pero la reproducción de música continúa, la aplicación puede cambiar el comportamiento de almacenamiento en caché para almacenar en caché menos o menos mapas de bits en memoria.

Los valores ordinales de los niveles de recorte representan una serie escalada de eventos de presión de memoria, con valores de incremento en consecuencia. Se pueden agregar más estados en el futuro. Por lo tanto, es importante no comprobar si hay valores específicos, sino comprobar si el nivel pasado a #onTrimMemory es mayor o igual que los niveles que controla la aplicación. Por ejemplo:

{@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();
                }
            }
            }

<nota fuerte>:</strong> el tiempo de ejecución puede invocar recolección de elementos no utilizados (GC) en respuesta a los cambios de estado de la aplicación. No es necesario invocar explícitamente GC desde la aplicación.

Java documentación para android.content.ComponentCallbacks2.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

Propiedades

Nombre Description
Handle

Obtiene el valor JNI del objeto Android subyacente.

(Heredado de IJavaObject)
JniIdentityHashCode

Devuelve el valor de java.lang.System.identityHashCode() para la instancia ajustada.

(Heredado de IJavaPeerable)
JniManagedPeerState

Estado del mismo nivel administrado.

(Heredado de IJavaPeerable)
JniObjectReferenceControlBlock

Devoluciones de llamada para transiciones de estado de la aplicación que se pueden usar para mejorar la administración de memoria en segundo plano.

(Heredado de IJavaPeerable)
JniPeerMembers

Compatibilidad con la invocación y el acceso de miembros.

(Heredado de IJavaPeerable)
PeerReference

Devuelve un JniObjectReference de la instancia de objeto Java ajustada.

(Heredado de IJavaPeerable)

Métodos

Nombre Description
Disposed()

Se llama cuando se ha eliminado la instancia.

(Heredado de IJavaPeerable)
DisposeUnlessReferenced()

Si no hay referencias pendientes a esta instancia, llama a Dispose(); de lo contrario, no hace nada.

(Heredado de IJavaPeerable)
Finalized()

Se llama cuando se ha finalizado la instancia.

(Heredado de IJavaPeerable)
OnConfigurationChanged(Configuration)

Lo llama el sistema cuando cambia la configuración del dispositivo mientras se ejecuta el componente.

(Heredado de IComponentCallbacks)
OnLowMemory()

Esto se llama cuando el sistema general se está ejecutando poco en la memoria y los procesos que se ejecutan activamente deben recortar su uso de memoria.

(Heredado de IComponentCallbacks)
OnTrimMemory(TrimMemory)

Se llama cuando el sistema operativo ha determinado que es un buen momento para que un proceso recorte la memoria innecesaria de su proceso.

SetJniIdentityHashCode(Int32)

Establezca el valor devuelto por JniIdentityHashCode.

(Heredado de IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

Devoluciones de llamada para transiciones de estado de la aplicación que se pueden usar para mejorar la administración de memoria en segundo plano.

(Heredado de IJavaPeerable)
SetPeerReference(JniObjectReference)

Establezca el valor devuelto por PeerReference.

(Heredado de IJavaPeerable)
UnregisterFromRuntime()

Anule el registro de esta instancia para que el entorno de ejecución no lo devuelva de invocaciones futuras Java.Interop.JniRuntime+JniValueManager.PeekValue .

(Heredado de IJavaPeerable)

Métodos de extensión

Nombre Description
GetJniTypeName(IJavaPeerable)

Obtiene el nombre JNI del tipo de la instancia self.

JavaAs<TResult>(IJavaPeerable)

Intente coerción self para escribir TResult, comprobando que la coerción es válida en el lado de Java.

JavaCast<TResult>(IJavaObject)

Realiza una conversión de tipos comprobados en tiempo de ejecución de Android.

JavaCast<TResult>(IJavaObject)

Devoluciones de llamada para transiciones de estado de la aplicación que se pueden usar para mejorar la administración de memoria en segundo plano.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Intente coerción self para escribir TResult, comprobando que la coerción es válida en el lado de Java.

Se aplica a