IComponentCallbacks2 Interface
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Retornos de chamada para transições de estado do aplicativo que podem ser usadas para melhorar o gerenciamento de memória em 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
- Implementações
Comentários
Retornos de chamada para transições de estado do aplicativo que podem ser usadas para melhorar o gerenciamento de memória em segundo plano. Essa interface está disponível em todos os componentes do aplicativo (android.app.Activity, android.app.Servicee ContentProviderandroid.app.Application).
Você deve implementar #onTrimMemory para liberar memória quando seu aplicativo for para estados em segundo plano. Isso ajuda o sistema a manter o processo do aplicativo armazenado em cache na memória por mais tempo, de modo que, na próxima vez que o usuário colocar seu aplicativo em primeiro plano, o aplicativo executará um início quente ou quente, retomando mais rapidamente e mantendo o estado.
<h2>Cortar níveis de memória e como lidar com eles</h2>
<ul><li>#TRIM_MEMORY_UI_HIDDEN<br> A interface do usuário do aplicativo não está mais visível. Esse é um bom momento para liberar grandes alocações de memória que são usadas apenas pela interface do usuário, como android.graphics.Bitmap Bitmaps, ou recursos relacionados à reprodução de vídeo ou animações.
<li>#TRIM_MEMORY_BACKGROUND<br> O processo do aplicativo é considerado em segundo plano e tornou-se elegível para ser eliminado para liberar memória para outros processos. Liberar mais memória prolongará o tempo em que o processo pode permanecer armazenado em cache na memória. Uma estratégia eficaz é liberar recursos que podem ser recriados quando o usuário retorna ao seu aplicativo.
</ul>
Os aplicativos que continuam funcionando para o usuário quando não estiverem visíveis podem responder ao #TRIM_MEMORY_UI_HIDDEN retorno de chamada alterando seu comportamento para favorecer o menor uso de memória. Por exemplo, um player de música pode manter a arte do álbum em tamanho real para todas as faixas na playlist atualmente reproduzida como Bitmaps armazenadas em cache na memória. Quando o aplicativo está em segundo plano, mas a reprodução de música continua, o aplicativo pode alterar o comportamento de cache para armazenar em cache menos bitmaps ou menores na memória.
Os valores ordinais para níveis de corte representam uma série crescente de eventos de pressão de memória, com valores de incremento adequadamente. Mais estados podem ser adicionados no futuro. Dessa forma, é importante não verificar se há valores específicos, mas sim verificar se o nível passado #onTrimMemory é maior ou igual aos níveis que seu aplicativo manipula. Por exemplo:
{@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();
}
}
}
<Observação forte>:</strong> , o runtime pode invocar a Coleta de Lixo (GC) em resposta às alterações de estado do aplicativo. Não é necessário invocar explicitamente o GC de seu aplicativo.
Java documentação para android.content.ComponentCallbacks2.
Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.
Propriedades
| Nome | Description |
|---|---|
| Handle |
Obtém o valor JNI do objeto Android subjacente. (Herdado de IJavaObject) |
| JniIdentityHashCode |
Retorna o valor da |
| JniManagedPeerState |
Estado do par gerenciado. (Herdado de IJavaPeerable) |
| JniObjectReferenceControlBlock |
Retornos de chamada para transições de estado do aplicativo que podem ser usadas para melhorar o gerenciamento de memória em segundo plano. (Herdado de IJavaPeerable) |
| JniPeerMembers |
Acesso ao membro e suporte à invocação. (Herdado de IJavaPeerable) |
| PeerReference |
Retorna uma JniObjectReference das instâncias de objeto Java encapsuladas. (Herdado de IJavaPeerable) |
Métodos
| Nome | Description |
|---|---|
| Disposed() |
Chamado quando a instância foi descartada. (Herdado de IJavaPeerable) |
| DisposeUnlessReferenced() |
Se não houver referências pendentes a essa instância, então chamará |
| Finalized() |
Chamado quando a instância foi finalizada. (Herdado de IJavaPeerable) |
| OnConfigurationChanged(Configuration) |
Chamado pelo sistema quando a configuração do dispositivo é alterada enquanto o componente está em execução. (Herdado de IComponentCallbacks) |
| OnLowMemory() |
Isso é chamado quando o sistema geral está com pouca memória e os processos em execução ativamente devem cortar o uso da memória. (Herdado de IComponentCallbacks) |
| OnTrimMemory(TrimMemory) |
Chamado quando o sistema operacional determinou que é um bom momento para um processo cortar a memória desnecessária de seu processo. |
| SetJniIdentityHashCode(Int32) |
Defina o valor retornado por |
| SetJniManagedPeerState(JniManagedPeerStates) |
Retornos de chamada para transições de estado do aplicativo que podem ser usadas para melhorar o gerenciamento de memória em segundo plano. (Herdado de IJavaPeerable) |
| SetPeerReference(JniObjectReference) |
Defina o valor retornado por |
| UnregisterFromRuntime() |
Cancele o registro dessa instância para que o runtime não a retorne de invocações futuras Java.Interop.JniRuntime+JniValueManager.PeekValue . (Herdado de IJavaPeerable) |
Métodos de Extensão
| Nome | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Obtém o nome JNI do tipo da instância |
| JavaAs<TResult>(IJavaPeerable) |
Tente coagir a digitar |
| JavaCast<TResult>(IJavaObject) |
Executa uma conversão de tipo marcada por runtime do Android. |
| JavaCast<TResult>(IJavaObject) |
Retornos de chamada para transições de estado do aplicativo que podem ser usadas para melhorar o gerenciamento de memória em segundo plano. |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Tente coagir a digitar |