OOM防止の一部の方法
1494 ワード
1.無駄なコントロールを適時に処理し、Gildeを標準として書く
2.リストアダプタのクリーンアップ(1)
3.リストアダプタのクリーンアップ(2)
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();
}