在自定义view中开启的动画,如果不做处理,在activity销毁后,依然会执行
占用资源。需要在不可见时,关闭动画;在可见时,开启动画涉及到两个方法
onWindowFocusChanged(hasWindowFocus: Boolean) onVisibilityChanged(changedView: View, visibility: Int) onWindowFocusChanged(hasWindowFocus: Boolean)
当包含此视图的窗口获得或失去焦点时调用
hasWindowFocus:true 获得焦点,开启动画;false 失去焦点,停止动画onVisibilityChanged(changedView: View, visibility: Int)
当view或view的父级view的可见性发生更改时调用
changedView:可见性发生变化的view。可能是本身,或者父级view
3.onDetachedFromWindow 在view所在界面finish时调用,自此处关闭动画onWindowFocusChanged()中
hasWindowFocus为false时,暂停动画
hasWindowFocus为true时,开启动画onVisibilityChanged()中
visibility为INVISIBLE或GONE时,暂停动画
visibility为VISIBLE时,开启动画onDetachedFromWindow 中调用cancel()关闭动画 animator.pause() 暂停动画