|=
membaca dengan cara yang sama seperti +=
.
notification.defaults |= Notification.DEFAULT_SOUND;
sama dengan
notification.defaults = notification.defaults | Notification.DEFAULT_SOUND;
di mana |
operator bit-bijaksana ATAU.
Semua operator direferensikan di sini .
Operator bit-wise digunakan karena, seperti sering, konstanta tersebut memungkinkan int untuk membawa bendera.
Jika Anda melihat konstanta itu, Anda akan melihat bahwa mereka memiliki kekuatan dua:
public static final int DEFAULT_SOUND = 1;
public static final int DEFAULT_VIBRATE = 2; // is the same than 1<<1 or 10 in binary
public static final int DEFAULT_LIGHTS = 4; // is the same than 1<<2 or 100 in binary
Jadi Anda bisa menggunakan bit-wise OR untuk menambahkan flag
int myFlags = DEFAULT_SOUND | DEFAULT_VIBRATE; // same as 001 | 010, producing 011
begitu
myFlags |= DEFAULT_LIGHTS;
berarti kami menambahkan bendera.
Dan secara simetris, kami menguji suatu bendera diset menggunakan &
:
boolean hasVibrate = (DEFAULT_VIBRATE & myFlags) != 0;
pipe equal operator
ke pertanyaan ini atau dokumentasi lain pada topik tidak akan membantu orang mencari.