什么意思是这两个运算符"| ="和"|"

ana*_*ass 4 java android

我在应用程序源代码中找到了这一行,但我无法弄清楚两个标志之间的按位或包含运算符" | " 的含义.

notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_SINGLE_TOP);
Run Code Online (Sandbox Code Playgroud)

我在下面的行中也没有理解这个operator | =的含义:

notification.flags |= Notification.FLAG_AUTO_CANCEL;
Run Code Online (Sandbox Code Playgroud)

有人可以帮助我.

Mat*_*lor 5

我没有其他人回答过我的回答,所以无论如何我决定完成它......

管道和和号分别| and &执行ORAND操作.

你会看惯||并且&&,其执行布尔逻辑ORAND,并使用单一的| or &是按位操作.

如果查看标志文档,clear_top的标志是0x04000000,single_top的标志是0x20000000.

因此,您正在执行的操作是:0x04000000或0x20000000 = 0x24000000

它设置意图中所需的位以使用两个所需的标志.

a |= b运营商的重载等同a = a | b,类似的使用+=,--或者++,你应该用在其他地方看到的