Android:What is difference between setFlags and addFlags for intent

What is difference between setFlags and addFlags for intent. Could any one explain it please. Help Appreciated.


When you use setFlags you are replacing the old flags... when you use addFlags you are appending new flags. Remember, a flag is just a integer which is power of two... in binary, flags look like this: 1, 10, 100, 1000, etc... (which in this case are 1, 2, 4, 8). So, what addFlags does is appending the integer you pass using the | operator.

// 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);

This set flag controls how to handle the Intent.setflag mainly depends on type of component being executed by the Intent.It returns the same intent object for chaining multiple calls into a single statement.

intent.addFlags(int num);

This helps to add additional flags to a particular intent with the existing values.this also returns the same intent object for chaining multiple calls into a single statement.


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

Just found this from the source code,for reference.