2016-10-04 72 views
6

這是一個原子操作嗎?在消息隊列中如何處理方向更改?

我的意思是有可能在方向改變期間在主線程上執行其他任何操作?

例如,假設在主線程的流程是這樣的:

someOperation - >orientationChangeStart - > someOtherOperation - >orientationChangeEnd

這可能嗎?

當方向更改正在進行時,someOtherOperation可以在UI線程上執行嗎?

在此先感謝。

回答

3

是的,這是原子操作。

僞它看起來像:

void setNewOrientation(int state) { 
    currentState = state; 
    runOrientationChangedEvent(); 
} 

然後通常Activity是重新創建。只有Activity的重新創建纔會添加到消息隊列中,因此可以快速查看是否更改設備方向。

你不能啓動,這個過程的結束,因爲它只是改變了一些INT變量,可以告訴你目前的方位像方向

getActivity().getResources().getConfiguration().orientation 

旋轉

getWindowManager().getDefaultDisplay().getRotation(); 

所以你可以在方向改變後得到事件

相關問題