|和^常用来操作一组可选项。
|表示可选项组合中若不存在该可选项,则添加;若存在该可选项则不变。
^表示可选项组合中若不存在该可选项,则添加;若存在该可选项则删除。
|表示比如:
boolean isImmersiveModeEnabled = ((uiOptions | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY) == uiOptions); if (isImmersiveModeEnabled) { Log.i(TAG, "Turning immersive mode mode off. "); } else { Log.i(TAG, "Turning immersive mode mode on."); }
这段代码的意思是判断uiOptions可选项组合中是否存在View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY标志,若不存在结果为false,若存在结果为true。
^表示比如:
newUiOptions ^= View.SYSTEM_UI_FLAG_HIDE_NAVIGATION;
这段代码的意思是若View.SYSTEM_UI_FLAG_NAVIGATION存在则删除,若不存在则添加。这样通过一句代码就可以实现删除和添加的循环。