搜尋

首頁  >  問答  >  主體

关于Android 内存泄露的问题

如果我在SampleActivity里面定义了一个成员变量ValueAnimator mAnimator,并设置重复方式为无限重复:mAnimator.setRepeatCount(ValueAnimator.INFINITE),将其启动:mAnimator.start();。那么问题来了:当SampleActivity已经销毁后,通过Logcat发现mAnimator还在运行,这样会不会导致Activity内存泄露?

天蓬老师天蓬老师2772 天前503

全部回覆(2)我來回復

  • 伊谢尔伦

    伊谢尔伦2017-04-17 17:40:10

    對於Activity記憶體外洩的定義,就是在Activity關閉後,是否有其他的常駐物件引用著這個Activity對象,導致Activity物件不能被回收。
    從你給出的信息來看,並不能看出是否會導致內存洩露,因為你沒給出mAnimator是否引用了Activity。
    你可以直接檢查mAnimator的引用鏈,如果有對Activity物件的引用(比如說ValueAnimator所操作的View,ValueAnimator的回調對象,都可能會造成間接引用Activity),則就會造成記憶體外洩。

    回覆
    0
  • 怪我咯

    怪我咯2017-04-17 17:40:10

    你可以用log印日誌啊,例如在onDestroy方法裡面打個日誌,看看有沒有沒調用,在activity裡面循環列印日誌,看看關閉後列印日誌是否會停止、

    回覆
    0
  • 取消回覆