Android:针对intent的setFlags和addFlags之间有什么区别

时间:2011-07-12 12:32:22

标签: android

针对intent的setFlags和addFlags之间有什么区别。任何人都可以解释一下。 帮助感谢。

3 个答案:

答案 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;
}

刚刚从源代码中找到了这个,供参考。