RecyclerView
인 Fragment
이 있습니다. 이 RecyclerView
에서조각이 제거 된 후 메모리가 해제되지 않습니다.
, 나는 가끔 다운로드 할 수 있습니다 및 디스플레이 이미지 (ImageView
에 Glide로드.
을 나는 Fragment
을 열 때, 사용 된 메모리는 때때로 1백메가바이트 주위 혹은 그 이상에 30메가바이트 주위에서 뛰어 수 있습니다.
Fragment
을 잡고있다
Activity
후
완료, 메모리는
. 그것은 이전과 동일하게 유지. 확보하지 않습니다 나는 Glide 문서를 확인하고 분명히 우리는 Bitmaps
을 RecyclerView
에 풀어 놓는 것에 대해 걱정할 필요가 없습니다. 이것은 앱이 종종 OOM으로 인해 충돌하기 때문에 큰 문제입니다.
Fragment
을 제거하면 어떻게 메모리를 올바르게 처리해야합니까?
편집 : 또 다른 관찰
내가 눈치 또 다른 한가지는 그 나는 Activity
을 완료 한 후 다시 같은 Activity
을 시작합니다. 메모리가 잠시 뒤로 점프 한 다음 최대 100MB까지 백업하면 Fragment
을 다시 시작하기 전에 메모리가 지워 졌다고 믿을 수 있습니다.
감사합니다. 확실히 도움이됩니다. 나는 이것을 (애플 리케이션을 통해 이것을하기 전에 시간이 좀 걸릴지도 모르지만) 내일 시도 할 것이고, 내가 어떻게되었는지 알려줄 것이다. – Guy
모든 변수를 지우라고 말하면 인스턴스 변수를 의미합니다. 맞습니까? onCreate 메서드에서 변수를 만들면 사용을 중지 한 후에 해당 변수를 지워야합니까? – Guy
예. 당신이 할당 한 모든 것은 당신이 더 이상 필요가 없다는 것을 알게 되 자마자 처리되어야합니다 /해야합니다. 은유로 : 1) 일회용 종이를 구입합니다. 당신은 그 종이에 당신의 하루에 대한 몇 가지 사실을 적어 두십시오. 2) 하루 종일 종이를 사용합니다.하지만 종이가 영원히 필요 없다는 것을 알고 있습니다. 3) 하루가 끝날 무렵, 종이를 깨닫게됩니다. 이제 그 목적을 성취했습니다. 4) 종이를 찢어서 버리고 쓰레기통에 던져 버립니다. 이제 "종이 한장"을 사용하는 변수와 "하루"를 활동 주기로 이해하십시오. –