O ondestroy nem sempre é chamado?

Eu coloquei algum código de limpeza de cacheonDestroy da minha atividade, mas na maioria das vezes o código não é executado a menos que eu termine a atividade explicitamente viafinish().

Edit: Apenas leiaonDestroy é chamado apenas comfinish() ou se o sistema estiver com poucos recursos. Então, onde eu preciso colocar meu código de limpeza de cache? Se eu colocar issoonPause() e o usuário volta para o aplicativo, o cache é limpo. Na verdade, estou armazenando arquivos temporários importantes no cache que não devem ser excluídos emonPause.

questionAnswers(3)

yourAnswerToTheQuestion