为什么 getDefaultDisplay().getSize(Point size) 正在更新其参数而不是返回值?
Why getDefaultDisplay().getSize(Point size) is updating its argument instead of returning a value?
它的实际实现是,
public void getSize(Point outSize) {
synchronized (this) {
updateDisplayInfoLocked();
mDisplayInfo.getAppMetrics(mTempMetrics, mDisplayAdjustments);
outSize.x = mTempMetrics.widthPixels;
outSize.y = mTempMetrics.heightPixels;
}
}
而且 documentation 也没有提到这个特殊的设计。
会不会是同步问题?如果将其返回,效果如何?只是好奇。
此外,为什么使用 Point
而不是 Dimensions
因为 Dimensions
在这种情况下似乎是有意义的。
很抱歉,如果这个问题太愚蠢,请忽略。
意识到这个设计是用来鼓励对象重用的,就像在评论中一样
它的实际实现是,
public void getSize(Point outSize) {
synchronized (this) {
updateDisplayInfoLocked();
mDisplayInfo.getAppMetrics(mTempMetrics, mDisplayAdjustments);
outSize.x = mTempMetrics.widthPixels;
outSize.y = mTempMetrics.heightPixels;
}
}
而且 documentation 也没有提到这个特殊的设计。
会不会是同步问题?如果将其返回,效果如何?只是好奇。
此外,为什么使用 Point
而不是 Dimensions
因为 Dimensions
在这种情况下似乎是有意义的。
很抱歉,如果这个问题太愚蠢,请忽略。
意识到这个设计是用来鼓励对象重用的,就像在评论中一样