AnimationDrawable导致OOM内存泄露

问题描述:今天做ZTE,发现反复运行,会OOM。

问题解决:Google了如下解决办法,果然有效。

  1. Move code for AnimationDrawable to onResume() method.
  2. Add following code for releasing memory to onPause().
    ad.stop();
    for (int i = 0; i < ad.getNumberOfFrames(); ++i){
        Drawable frame = ad.getFrame(i);
        if (frame instanceof BitmapDrawable) {
            ((BitmapDrawable)frame).getBitmap().recycle();
        }
        frame.setCallback(null);
    }
    ad.setCallback(null);