Lorsque vous utilisez, setFlagsvous remplacez les anciens indicateurs ... lorsque vous utilisez, addFlagsvous ajoutez de nouveaux indicateurs. Rappelez-vous, un drapeau est juste un entier qui est une puissance de deux ... en binaire, les drapeaux ressemblent à ceci: 1, 10, 100, 1000, etc ... (qui dans ce cas sont 1, 2, 4, 8) . Donc, ce qui addFlagsfait est d'ajouter l'entier que vous passez à l'aide de l' |opérateur.
// example... // value of flags: 1
intent.setFlags(2|4);// now flags have this value: 110
intent.addFlags(8);// now flags have this value: 1110
Comment cela peut-il intent.setFlags(2|4);donner une valeur de 110
Gopal Singh Sirvi
6
@GopalSinghSirvi en binaire, le LSB (bit le moins significatif) pour les valeurs lisibles par l'homme est le plus juste. cela signifie que le 0 du 110 représente la valeur 2 ^ 0 = 1. La deuxième valeur 1 représente 2 ^ 1 = 2. Et la troisième valeur représente 2 ^ 2 = 4. Donc, en utilisant le OU | opérateur sur 4 (100) et 2 (010) est 110
Patric
Cela ne doit pas être confondu avec Window.setFlags / addFlags qui ont un comportement différent des méthodes Intent.
TheIT
Puis-je connaître les utilisations de ces indicateurs d'intention? ou pouvez-vous me taguer à la question appropriée?
Anish Kumar
11
intent.setFlags(int num);
Cet indicateur d'ensemble contrôle la manière de gérer l'Intent.setflag dépend principalement du type de composant exécuté par l'Intention.Il retourne le même objet d'intention pour le chaînage de plusieurs appels en une seule instruction.
intent.addFlags(int num);
Cela permet d'ajouter des indicateurs supplémentaires à une intention particulière avec les valeurs existantes. Cela renvoie également le même objet d'intention pour enchaîner plusieurs appels en une seule instruction.
Réponses:
Lorsque vous utilisez,
setFlags
vous remplacez les anciens indicateurs ... lorsque vous utilisez,addFlags
vous ajoutez de nouveaux indicateurs. Rappelez-vous, un drapeau est juste un entier qui est une puissance de deux ... en binaire, les drapeaux ressemblent à ceci: 1, 10, 100, 1000, etc ... (qui dans ce cas sont 1, 2, 4, 8) . Donc, ce quiaddFlags
fait est d'ajouter l'entier que vous passez à l'aide de l'|
opérateur.la source
intent.setFlags(2|4);
donner une valeur de 110Cet indicateur d'ensemble contrôle la manière de gérer l'Intent.setflag dépend principalement du type de composant exécuté par l'Intention.Il retourne le même objet d'intention pour le chaînage de plusieurs appels en une seule instruction.
Cela permet d'ajouter des indicateurs supplémentaires à une intention particulière avec les valeurs existantes. Cela renvoie également le même objet d'intention pour enchaîner plusieurs appels en une seule instruction.
la source
Je viens de trouver cela à partir du code source, pour référence.
la source