compreensão onTrimMemory (int level)

Eu li recentemente este artigo sobreGerenciando a memória do seu aplicativoEu sugiro fortemente que você leia se você é um AndroidDev e nunca o fez.

Existem muitas boas práticas e uma coisa que eu nunca sei sobre é aonTrimMemory (int nível) método chamado pelo sistema em cada Activity / Fragment para notificar eventos nos quais a memória deve ou pode ser liberada.

Aqui está uma citação desse artigo:

Observe que seu aplicativo recebe o retorno de chamada onTrimMemory () com TRIM_MEMORY_UI_HIDDEN apenas quando todos os componentes da interface do usuário do processo do aplicativo ficam ocultos do usuário. Isso é diferente do callback onStop (), que é chamado quando uma instância Activity fica oculta, o que ocorre mesmo quando o usuário se move para outra atividade no aplicativo. Portanto, embora você deva implementar onStop () para liberar recursos de atividade, como uma conexão de rede ou cancelar o registro de receptores de transmissão,você normalmente não deve liberar seus recursos da interface do usuário até receber onTrimMemory (TRIM_MEMORY_UI_HIDDEN). Isso garante que, se o usuário navegar de outra atividade em seu aplicativo, seus recursos da interface do usuário ainda estarão disponíveis para retomar a atividade rapidamente.

Estou realmente interessado em implementar um bom gerenciamento de memória em meu aplicativo, por isso estou ansioso para implementar oonTrimMemory () no caminho certo.

Eu só tenho algumas perguntas sobre isso:

éonTrimMemory (TRIM_MEMORY_UI_HIDDEN) chamado logo após o onStop ()?

o que "liberar seus recursos de interface do usuário" significa nesse contexto? Por exemplo, limpe o cache de bitmap ou remova e destrua todas as visualizações na árvore de exibição? Eu costumo destruir os modos de exibição noonDestroy () ouonDestroyView () métodos, agora estou me perguntando se estou fazendo certo.

há um retorno de chamada Twin / correspondente paraonTrimMemory (TRIM_MEMORY_UI_HIDDEN)? gostaronCreate-onDestroy, onStart-onStop, onCreateView-onDestroyView. Eu estou pedindo para entender onde e como eu deveria restaurar o estado da interface do usuário depois de uma atividade / fragmento como foi trazido em primeiro plano apósonTrimMemory (TRIM_MEMORY_UI_HIDDEN) tem sido chamado.

questionAnswers(3)

yourAnswerToTheQuestion