更新
onVisibilityChanged(手机系统低于7.0)
- 触发时机:当一个视图的可见性发生变化时,该方法会被调用。
- 作用范围:该方法用于处理单个视图自身的可见性变化。当一个视图的可见性发生变化时,系统会直接调用该视图的 onVisibilityChanged() 方法。
@Override
protected void onVisibilityChanged(@NonNull View changedView, int visibility) {
super.onVisibilityChanged(changedView, visibility);
if (visibility == View.VISIBLE) {
//onResume() 被调用
//处理动画播放、线程启动、开启定时任务等操作
} else {
// onPause() 被调用
//处理动画的暂停、取消或者线程的暂停、取消、定时任务的暂停、取消等
}
}
onVisibilityAggregated(手机系统高于7.0)
- 触发时机:当一个视图的可见性发生变化,并且这个变化已经在整个视图层次结构中进行了聚合处理时,该方法会被调用。
- 作用范围:该方法主要用于处理视图在整个层次结构中的可见性变化。当一个视图的可见性发生变化时,系统会自动遍历整个层次结构,将所有可见性变化进行聚合和处理,然后调用每个视图的 onVisibilityAggregated() 方法。
@Override
public void onVisibilityAggregated(boolean isVisible) {
super.onVisibilityAggregated(isVisible);
if (isVisible) {
//onResume() 被调用
//处理动画播放、线程启动、开启定时任务等操作
} else {
// onPause() 被调用
//处理动画的暂停、取消或者线程的暂停、取消、定时任务的暂停、取消等
}
}
销毁
onDetachedFromWindow执行销毁时资源的释放
override fun onDetachedFromWindow() {
super.onDetachedFromWindow()
// onDestory调用
}
文章介绍了Android系统中onVisibilityChanged方法在低版本中的使用,以及onVisibilityAggregated方法在高版本中的应用,重点讲解了这两个方法在视图可见性变化时的触发时机和作用。同时提到了onDetachedFromWindow方法在销毁时的资源释放过程。
849

被折叠的 条评论
为什么被折叠?



