这是原子操作吗?
我的意思是,在方向更改期间,主线程上是否有可能执行其他任何操作?
例如,假设主线程上的流程是这样的:
someOperation - > orientationChangeStart - > someOtherOperation - > orientationChangeEnd
这可能吗?
someOtherOperation在方向更改正在进行时,是否可以在UI线程上执行?
提前致谢.
是的,这是原子操作。
在伪中它看起来像:
void setNewOrientation(int state) {
currentState = state;
runOrientationChangedEvent();
}
Run Code Online (Sandbox Code Playgroud)
然后通常Activity会重新创建。只有重新创建 Activity 才会添加到消息队列中,因此可以查看是否足够快地更改设备方向。
您无法开始和结束此过程,因为它只是更改了一些 int 变量,这些变量可以告诉您当前的方向,例如orientation:
getActivity().getResources().getConfiguration().orientation
Run Code Online (Sandbox Code Playgroud)
或轮换
getWindowManager().getDefaultDisplay().getRotation();
Run Code Online (Sandbox Code Playgroud)
所以只有在方向改变后才能获取事件。
| 归档时间: |
|
| 查看次数: |
77 次 |
| 最近记录: |