Android 延迟时间性能 - 视图可见性 - 我们应该在 setVisibility 之前检查视图可见性吗?
Android Delay Time Performance - View visibility - should we check view visibility before setVisibility?
根据输入的数据,我的布局将显示一些视图并隐藏一些其他视图。
那么我应该在 setVisibility()
之前用 getVisibility()
检查它们的可见性吗?
在延迟时间性能方面,什么会更好?
(我的布局有很多图片,这使得活动之间的延迟时间很长。所以这就是我 post 这个问题的原因)
经常检查来源。在这种情况下 View.java
public void setVisibility(@Visibility int visibility) {
setFlags(visibility, VISIBILITY_MASK);
}
调用 setFlags
:
这将检查标志是否已更改,如果没有,则快速 returns:
...
int old = mViewFlags;
mViewFlags = (mViewFlags & ~mask) | (flags & mask);
int changed = mViewFlags ^ old;
if (changed == 0) {
return;
}
...
所以虽然我没有关于性能的数字,但我想说差异可以忽略不计,因为如果您将它设置为当前值,它不会改变。
与此相反,getVisibility
也没什么作用:
public int getVisibility() {
return mViewFlags & VISIBILITY_MASK;
}
根据输入的数据,我的布局将显示一些视图并隐藏一些其他视图。
那么我应该在 setVisibility()
之前用 getVisibility()
检查它们的可见性吗?
在延迟时间性能方面,什么会更好?
(我的布局有很多图片,这使得活动之间的延迟时间很长。所以这就是我 post 这个问题的原因)
经常检查来源。在这种情况下 View.java
public void setVisibility(@Visibility int visibility) {
setFlags(visibility, VISIBILITY_MASK);
}
调用 setFlags
:
这将检查标志是否已更改,如果没有,则快速 returns:
...
int old = mViewFlags;
mViewFlags = (mViewFlags & ~mask) | (flags & mask);
int changed = mViewFlags ^ old;
if (changed == 0) {
return;
}
...
所以虽然我没有关于性能的数字,但我想说差异可以忽略不计,因为如果您将它设置为当前值,它不会改变。
与此相反,getVisibility
也没什么作用:
public int getVisibility() {
return mViewFlags & VISIBILITY_MASK;
}