调用时机
Attached
附加的意思,当 View
附加到 Window
的时候,就会回调 onAttachedToWindow
。
Detached
分离,拆卸的意思,与 Attached
刚好相反,也就是当 View
与 Window
分离的时候会回调 onDetachedFromWindow
。
在
Android
中,Window
是个抽象的概念,Android
中Window
的具体实现类是PhoneWindow
,Activity
和Dialog
中的Window
对象都是PhoneWindow
。
使用场景
在 自定义View
的时候,如果内部有一些比较重量级的资源,且不与其它 View
通用的时候(比如 bitmap
,或者一些用作计算的子线程,再或者一些定时器,动画等),就可以重写这两个方法,在 onAttachedToWindow
中进行初始化, onDetachedFromWindow
中进行释放。因为在大多数情况下,这些数据对于被分离后 View
已经没有意义了。