我创建了一个无限ValueAnimator
,它保存对视图的引用(当然视图保存对Context
的引用),并且日志显示当视图(应该是)时它不会停止破坏。
ValueAnimator anim = ValueAnimator.ofFloat(0, 1);
anim.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationRepeat(Animator animation) {
myView.setText(...);
Log.d("my_tag", "I am still running and repeating");
}
});
anim.setRepeatCount(ValueAnimator.INFINITE);
anim.start();
当然,我可以通过将侦听器提取为静态内部类并保持WeakReference
来保持(强)引用。但是,我的问题是,如果有限动画师(例如anim.setRepeatCount(3)
)在定义的时间内停止,它是否会在动画结束后导致内存泄漏? (所以我需要做同样的弱参考策略)?