Saat Anda menggunakan, setFlagsAnda mengganti bendera lama ... saat Anda menggunakanaddFlags Anda menambahkan bendera baru. Ingat, sebuah flag hanyalah sebuah integer yang merupakan pangkat dua ... dalam biner, flag terlihat seperti ini: 1, 10, 100, 1000, dll ... (yang dalam hal ini adalah 1, 2, 4, 8) . Jadi, yang addFlagsdilakukan adalah menambahkan bilangan bulat yang Anda berikan menggunakan |operator.
// example... // value of flags: 1
intent.setFlags(2|4);// now flags have this value: 110
intent.addFlags(8);// now flags have this value: 1110
Bagaimana mungkin intent.setFlags(2|4);akan memberikan nilai 110
Gopal Singh Sirvi
6
@GopalSinghSirvi dalam biner LSB (bit paling tidak signifikan) untuk nilai yang dapat dibaca manusia adalah yang paling benar. itu berarti bahwa 0 dari 110 mewakili nilai 2 ^ 0 = 1. Nilai kedua 1 mewakili 2 ^ 1 = 2. Dan nilai ketiga mewakili 2 ^ 2 = 4. Jadi menggunakan OR | operator pada 4 (100) dan 2 (010) adalah 110
Patric
Ini jangan disamakan dengan Window.setFlags / addFlags yang memiliki perilaku berbeda dengan metode Intent.
TheIT
Bolehkah saya mengetahui penggunaan tanda maksud ini? atau dapatkah Anda memberi tag saya pada pertanyaan yang sesuai?
Anish Kumar
11
intent.setFlags(int num);
Tanda set ini mengontrol cara menangani Intent.setflag terutama bergantung pada jenis komponen yang dieksekusi oleh Intent. Ini mengembalikan objek maksud yang sama untuk merangkai beberapa panggilan ke dalam satu pernyataan.
intent.addFlags(int num);
Ini membantu untuk menambahkan tanda tambahan ke maksud tertentu dengan nilai yang ada. Ini juga mengembalikan objek maksud yang sama untuk merangkai beberapa panggilan ke dalam satu pernyataan.
Jawaban:
Saat Anda menggunakan,
setFlags
Anda mengganti bendera lama ... saat Anda menggunakanaddFlags
Anda menambahkan bendera baru. Ingat, sebuah flag hanyalah sebuah integer yang merupakan pangkat dua ... dalam biner, flag terlihat seperti ini: 1, 10, 100, 1000, dll ... (yang dalam hal ini adalah 1, 2, 4, 8) . Jadi, yangaddFlags
dilakukan adalah menambahkan bilangan bulat yang Anda berikan menggunakan|
operator.sumber
intent.setFlags(2|4);
akan memberikan nilai 110Tanda set ini mengontrol cara menangani Intent.setflag terutama bergantung pada jenis komponen yang dieksekusi oleh Intent. Ini mengembalikan objek maksud yang sama untuk merangkai beberapa panggilan ke dalam satu pernyataan.
Ini membantu untuk menambahkan tanda tambahan ke maksud tertentu dengan nilai yang ada. Ini juga mengembalikan objek maksud yang sama untuk merangkai beberapa panggilan ke dalam satu pernyataan.
sumber
Baru saja menemukan ini dari kode sumber, untuk referensi.
sumber