Ste*_*yle 19 performance android android-view
我有帮助方法,View根据传递给方法的状态变量设置某些s 的可见性.有时,这些方法会被多次调用,并且View可见性不会改变.所以我发现自己开始检查每个人的可见性,View然后再按照以下思路进行设置:"没有必要将View的可见性更改为相同的可见性并无缘无故地刷新".
if (myView.getVisibility() != View.VISIBLE) {
myView.setVisibility(View.VISIBLE);
}
etc...
Run Code Online (Sandbox Code Playgroud)
但是,现在我想知道实现是否setVisibility已经考虑到这一点,并检查你是否设置了与View已有的相同的可见性,并且不会不必要地刷新View(我的代码试图做的).
那么有人知道我的"优化"是否实际上提高了性能,还是API已经领先于我?
Geo*_*its 47
他们已经领先一步了.请参阅以下代码View.java:setVisibility():
public void setVisibility(int visibility) {
setFlags(visibility, VISIBILITY_MASK);
...
}
Run Code Online (Sandbox Code Playgroud)
它叫setFlags():
void setFlags(int flags, int mask) {
int old = mViewFlags;
mViewFlags = (mViewFlags & ~mask) | (flags & mask);
int changed = mViewFlags ^ old;
if (changed == 0) {
return;
}
....
}
Run Code Online (Sandbox Code Playgroud)
它检查标志是否与当前状态匹配.如果是这样,它只是返回而不做任何事情.
| 归档时间: |
|
| 查看次数: |
1192 次 |
| 最近记录: |