Android:意图的setFlags和addFlags之间有什么区别

意图的setFlags和addFlags之间有什么区别。 请有人解释一下吗? 帮助赞赏。

当你使用setFlags你正在replace旧的标志…当你使用addFlags你正在追加新的标志。 请记住,一个标志只是一个二进制的整数,在二进制中,标志看起来像这样: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 
 intent.setFlags(int num); 

这个设置标志控制着如何处理Intent.setflag,主要取决于Intent所执行的组件types。它返回相同的intent对象,将多个调用链接成一个语句。

 intent.addFlags(int num); 

这有助于将附加标志添加到具有现有值的特定意图。此外,还会将同一个意图对象用于将多个调用链接到一个语句中。

  public Intent addFlags(int flags) { mFlags |= flags; return this; } public Intent setFlags(int flags) { mFlags = flags; return this; } 

刚刚从源代码中find这个,供参考。