ความแตกต่างระหว่าง setFlags และ addFlags สำหรับความตั้งใจคืออะไร ใครช่วยอธิบายหน่อย ช่วยชื่นชม
ความแตกต่างระหว่าง setFlags และ addFlags สำหรับความตั้งใจคืออะไร ใครช่วยอธิบายหน่อย ช่วยชื่นชม
คำตอบ:
เมื่อคุณใช้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
intent.setFlags(int num);
แฟล็กชุดนี้ควบคุมวิธีจัดการ Intent.setflag ส่วนใหญ่ขึ้นอยู่กับชนิดของคอมโพเนนต์ที่ถูกเรียกใช้โดย Intent โดยจะส่งคืนอ็อบเจ็กต์เจตนาเดียวกันสำหรับการเชื่อมโยงการเรียกหลาย ๆ ครั้งเป็นคำสั่งเดียว
intent.addFlags(int num);
สิ่งนี้ช่วยในการเพิ่มแฟล็กเพิ่มเติมให้กับความตั้งใจเฉพาะด้วยค่าที่มีอยู่นอกจากนี้ยังส่งคืนอ็อบเจ็กต์เจตนาเดียวกันสำหรับการเชื่อมโยงการโทรหลายสายเข้าในคำสั่งเดียว
public Intent addFlags(int flags) {
mFlags |= flags;
return this;
}
public Intent setFlags(int flags) {
mFlags = flags;
return this;
}
เพิ่งพบสิ่งนี้จากซอร์สโค้ดสำหรับการอ้างอิง