1.及时处理没用的控件,以Gilde为标准写的
在退出Activity的界面时
protected void onDestroy() {
//清除掉activity的内存
Glide.get(PostDeSportActivity.this).clearMemory();
//将适配器清理
if (topicDetPicGVAdapter!=null){
topicDetPicGVAdapter.cleanAdapter();
topicDetPicGVAdapter=null;
}
//通知系统回收不用的垃圾页面
System.gc();
super.onDestroy();
}
2.列表适配器的清理(1)
public void cleanAdapter(){
//控件的清理
Glide.clear(binding.adapterGvPic);
//将图片的控件清理(似乎没什么用,但写上无错)
binding.adapterGvPic.setBackgroundResource(0);
}
3.列表适配器的清理(2)
//这里我用hashMap来承接自己的控件
public void cleanMap(){
//用来循环清理Bitmap(如果图片小于2M,则可以不使用,但无错)
for (int i = 0; i < Imap.size(); i++) {
if (Imap.get(i)!=null){
if (list.get(i).substring(list.get(i).length()-3,list.get(i).length()).equals("gif")){
Glide.clear(Imap.get(i));
Imap.get(i).setImageDrawable(null);
}else {
Glide.clear(Imap.get(i));
BitmapDrawable bitmapDrawable = (BitmapDrawable) Imap.get(i).getDrawable();
if (bitmapDrawable != null) {
Bitmap bm = bitmapDrawable.getBitmap();
if (bm!=null && !bm.isRecycled()) {
Imap.get(i).setImageResource(0);
bm.recycle();
}
}
}
}
}
//必须将静态的对象清空
Imap.clear();
Imappr.clear();
Imapor.clear();
}
网友评论