针对intent的setFlags和addFlags之间有什么区别。任何人都可以解释一下。 帮助感谢。
答案 0 :(得分:125)
当您使用setFlags
时,您正在替换旧标志...当您使用addFlags
时,您将附加新标记。请记住,一个标志只是一个2的幂的整数...在二进制中,标志看起来像这样:1,10,100,1000等......(在这种情况下是1,2,4,8) 。因此,addFlags
所做的是使用|
运算符追加您传递的整数。
// example...
// value of flags: 1
intent.setFlags(2|4);
// now flags have this value: 110
intent.addFlags(8);
// now flags have this value: 1110
答案 1 :(得分:10)
intent.setFlags(int num);
此set标志控制如何处理Intent.setflag主要取决于Intent执行的组件类型。它返回相同的intent对象,用于将多个调用链接到单个语句中。
intent.addFlags(int num);
这有助于使用现有值为特定意图添加其他标志。这也会返回相同的意图对象,以便将多个调用链接到单个语句中。
答案 2 :(得分:4)
public Intent addFlags(int flags) {
mFlags |= flags;
return this;
}
public Intent setFlags(int flags) {
mFlags = flags;
return this;
}
刚刚从源代码中找到了这个,供参考。