Когда вы используете, 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
Как это возможно intent.setFlags(2|4);даст ценность 110?
Гопал Сингх Сирви
6
@GopalSinghSirvi в двоичном формате младший бит (младший значащий бит) для удобочитаемых значений является наиболее правильным. это означает, что 0 из 110 представляет значение 2 ^ 0 = 1. Второе значение 1 представляет 2 ^ 1 = 2. А третье значение представляет 2 ^ 2 = 4. Таким образом, используя OR | Оператор на 4 (100) и 2 (010) - 110
Патрик
Это не следует путать с Window.setFlags / addFlags, поведение которых отличается от поведения методов Intent.
TheIT
Могу ли я узнать об использовании этих флагов намерений? или вы можете указать мне соответствующий вопрос?
Аниш Кумар
11
intent.setFlags(int num);
Этот установленный флаг контролирует, как обрабатывать Intent.setflag в основном зависит от типа компонента, выполняемого намерением. Он возвращает один и тот же объект намерения для объединения нескольких вызовов в один оператор.
intent.addFlags(int num);
Это помогает добавить дополнительные флаги к конкретному намерению с существующими значениями. Это также возвращает тот же объект намерения для объединения нескольких вызовов в один оператор.
Ответы:
Когда вы используете,
setFlags
вы заменяете старые флаги ... когда вы используете,addFlags
вы добавляете новые флаги. Помните, что флаг - это просто целое число, которое является степенью двойки ... в двоичном формате флаги выглядят так: 1, 10, 100, 1000 и т. Д. (В данном случае это 1, 2, 4, 8) . Итак, чтоaddFlags
добавляет целое число, которое вы передаете с помощью|
оператора.источник
intent.setFlags(2|4);
даст ценность 110?Этот установленный флаг контролирует, как обрабатывать Intent.setflag в основном зависит от типа компонента, выполняемого намерением. Он возвращает один и тот же объект намерения для объединения нескольких вызовов в один оператор.
Это помогает добавить дополнительные флаги к конкретному намерению с существующими значениями. Это также возвращает тот же объект намерения для объединения нескольких вызовов в один оператор.
источник
Только что нашел это в исходном коде для справки.
источник