Kiedy używasz setFlags, zastępujesz stare flagi ... kiedy używasz addFlags, dołączasz nowe flagi. Pamiętaj, że flaga to po prostu liczba całkowita będąca potęgą dwóch ... binarnie flagi wyglądają następująco: 1, 10, 100, 1000 itd. (Czyli w tym przypadku 1, 2, 4, 8) . A więc addFlagsdołączenie liczby całkowitej, którą przekazujesz za pomocą |operatora.
// example... // value of flags: 1
intent.setFlags(2|4);// now flags have this value: 110
intent.addFlags(8);// now flags have this value: 1110
Jak to możliwe intent.setFlags(2|4);, da wartość 110
Gopal Singh Sirvi
6
@GopalSinghSirvi binarnie LSB (najmniej znaczący bit) dla wartości czytelnych dla człowieka jest najbardziej poprawnym. to znaczy, że 0 ze 110 reprezentuje wartość 2 ^ 0 = 1. Druga wartość 1 oznacza 2 ^ 1 = 2. A trzecia wartość oznacza 2 ^ 2 = 4. Więc używając OR | operator na 4 (100) i 2 (010) to 110
Patric
Nie należy tego mylić z Window.setFlags / addFlags, które mają inne zachowanie niż metody Intent.
TheIT
Czy mogę poznać zastosowania tych flag intencji? czy możesz oznaczyć mnie odpowiednim pytaniem?
Anish Kumar
11
intent.setFlags(int num);
Ta flaga zestawu kontroluje sposób obsługi Intent.setflag zależy głównie od typu komponentu wykonywanego przez Intent. Zwraca ten sam obiekt intencji do łączenia wielu wywołań w jedną instrukcję.
intent.addFlags(int num);
Pomaga to w dodawaniu dodatkowych flag do określonej intencji z istniejącymi wartościami. To również zwraca ten sam obiekt intencji do łączenia wielu wywołań w jedną instrukcję.
Odpowiedzi:
Kiedy używasz
setFlags
, zastępujesz stare flagi ... kiedy używaszaddFlags
, dołączasz nowe flagi. Pamiętaj, że flaga to po prostu liczba całkowita będąca potęgą dwóch ... binarnie flagi wyglądają następująco: 1, 10, 100, 1000 itd. (Czyli w tym przypadku 1, 2, 4, 8) . A więcaddFlags
dołączenie liczby całkowitej, którą przekazujesz za pomocą|
operatora.źródło
intent.setFlags(2|4);
, da wartość 110Ta flaga zestawu kontroluje sposób obsługi Intent.setflag zależy głównie od typu komponentu wykonywanego przez Intent. Zwraca ten sam obiekt intencji do łączenia wielu wywołań w jedną instrukcję.
Pomaga to w dodawaniu dodatkowych flag do określonej intencji z istniejącymi wartościami. To również zwraca ten sam obiekt intencji do łączenia wielu wywołań w jedną instrukcję.
źródło
Właśnie znalazłem to w kodzie źródłowym, w celach informacyjnych.
źródło