如果我在SampleActivity
里面定义了一个成员变量ValueAnimator mAnimator
,并设置重复方式为无限重复:mAnimator.setRepeatCount(ValueAnimator.INFINITE)
,将其启动:mAnimator.start();
。那么问题来了:当SampleActivity
已经销毁后,通过Logcat发现mAnimator还在运行,这样会不会导致Activity内存泄露?
伊谢尔伦2017-04-17 17:40:10
對於Activity記憶體外洩的定義,就是在Activity關閉後,是否有其他的常駐物件引用著這個Activity對象,導致Activity物件不能被回收。
從你給出的信息來看,並不能看出是否會導致內存洩露,因為你沒給出mAnimator是否引用了Activity。
你可以直接檢查mAnimator的引用鏈,如果有對Activity物件的引用(比如說ValueAnimator所操作的View,ValueAnimator的回調對象,都可能會造成間接引用Activity),則就會造成記憶體外洩。
怪我咯2017-04-17 17:40:10
你可以用log印日誌啊,例如在onDestroy方法裡面打個日誌,看看有沒有沒調用,在activity裡面循環列印日誌,看看關閉後列印日誌是否會停止、