Android: какая разница между setFlags и addFlags для намерения

В чем разница между setFlags и addFlags для намерения. Может ли кто-нибудь объяснить это, пожалуйста. Помогите оценить.

Ответ 1

Когда вы используете setFlags, вы заменяете старые флаги... когда вы используете 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

Ответ 2

intent.setFlags(int num);

Этот флаг устанавливает, как обрабатывать Intent.setflag в основном зависит от типа компонента, выполняемого Intent.It возвращает один и тот же объект намерения для объединения нескольких вызовов в один оператор.

intent.addFlags(int num);

Это помогает добавить дополнительные флаги к определенному намерению с существующими значениями. Это также возвращает один и тот же объект намерения для объединения нескольких вызовов в один оператор.

Ответ 3

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

Просто нашел это из исходного кода для справки.