IComponentCallbacks2 Interfaz
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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 |
| 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 |
| 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 |
| 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 |
| 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 |
| JavaAs<TResult>(IJavaPeerable) |
Intente coerción |
| 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 |