Digamos que carreguei uma imagem em um objeto bitmap como
Bitmap myBitmap = BitmapFactory.decodeFile(myFile);
Agora, o que acontecerá se eu carregar outro bitmap como
myBitmap = BitmapFactory.decodeFile(myFile2);
O que acontece com o primeiro myBitmap? Ele é coletado como lixo ou preciso coletá-lo manualmente antes de carregar outro bitmap, por exemplo. myBitmap.recycle()
?
Além disso, existe uma maneira melhor de carregar imagens grandes e exibi-las uma após a outra enquanto faz a reciclagem pelo caminho?
Depois que o bitmap foi carregado na memória, na verdade ele foi feito por dados de duas partes. A primeira parte inclui algumas informações sobre o bitmap, a outra parte inclui informações sobre os pixels do bitmap (é composto por uma matriz de bytes). A primeira parte existe na memória usada Java, a segunda parte existe na memória usada C ++. Eles podem usar a memória um do outro diretamente. Bitmap.recycle () é usado para liberar a memória de C ++. Se você apenas fizer isso, o GC irá coletar a parte de java e a memória de C será sempre usada.
fonte
Timmmm estava certo.
de acordo com: http://developer.android.com/training/displaying-bitmaps/cache-bitmap.html
Além disso, antes do Android 3.0 (API de nível 11), os dados de apoio de um bitmap eram armazenados na memória nativa que não era liberada de maneira previsível, potencialmente fazendo com que um aplicativo excedesse brevemente seus limites de memória e travasse.
fonte