나는 뉴스 피드를 관리하는 Recyclerview를 보유하고 있습니다. 많은 이미지가 있습니다. 안드로이드 모니터를 사용하면이 목록에서 스크롤 할 때 할당 된 메모리가 항상 증가합니다! 그래서 나는 (내 어댑터에서)이 2 재정의 방법에 추가 :Android : 글라이드를 어댑터 (RecyclerView)에서 수동으로 지우는 것이 좋습니다.
@Override
public void onViewDetachedFromWindow(RecyclerView.ViewHolder holder) {
super.onViewDetachedFromWindow(holder);
clearAdapter(holder);
}
@Override
public void onViewRecycled(RecyclerView.ViewHolder holder) {
super.onViewRecycled(holder);
clearAdapter(holder);
}
protected void clearAdapter(RecyclerView.ViewHolder holder) {
Glide.clear(holder.mImageView);
...
}
결과는 메모리 할당에 대한 더 나은 (그러나 완벽하지를!). 그리고 지금은 새로운 문제가 있습니다. 때로는 일부 이미지가 내 뉴스 피드에로드되지 않기 때문에 (완전히 무작위입니다!)
도움 주셔서 감사합니다!
'onViewDetachedFromWindow'에서보기를 지우는 것은 안전하지 않습니다. 소유자가 이미 재활용되지 않은 경우 다시 바인드되지 않을 수도 있기 때문입니다. –