android 动画内存泄漏,Android-内存泄漏-ValueAnimator

今天检查代码的时候发现了一个内存泄漏的问题,导致Activity内存一直无法释放,后来发现是Activity内部的全局变量mValueAnimator无法释放而导致的。

代码分析

我们先看到代码,为了实现一个动画效果,我们在Activity内放置了一个ValueAnimator的全局变量,并且调用开启动画的方法。

private ValueAnimator mValueAnimator;

private void initAnimation() {

mValueAnimator = ValueAnimator.ofFloat(0, 1f);

mValueAnimator.setDuration(500);

mValueAnimator.setInterpolator(new CycleInterpolator(1));

mValueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {

@Override

public void onAnimationUpdate(ValueAnimator animation) {

}

});

mValueAnimator.setRepeatCount(ValueAnimator.INFINITE);

mValueAnimator.setRepeatMode(ValueAnimator.RESTART);

mValueAnimator.start();

}

然而,在没有做任何操作之后退出了Activity页面,这时候出现了内存泄漏,通过分析Java Head内存,我们发现是mValueAn

你可能感兴趣的:(android,动画内存泄漏)