Multi-Window: สาระสำคัญของโหมดการทำงานหลายอย่างพร้อมกันบน Android

ผู้แต่ง: IT Sectr เผยแพร่เมื่อ: 2026-06-08 เวลาอ่าน: 10 นาที

Multi-Window คือชุดของโหมดการทำงานหลายอย่างพร้อมกันใน Android ที่ช่วยให้เรียกใช้หลายแอปบนหน้าจอพร้อมกันได้ ระบบประกอบด้วยสามโหมด: Split Screen สำหรับแบ่งหน้าจอเป็นสองส่วน, Picture-in-Picture สำหรับวิดีโอในหน้าต่างขนาดเล็ก และ Freeform สำหรับหน้าต่างขนาดตามต้องการบนหน้าจอขนาดใหญ่ ตามข้อมูลจาก Android Developers (2025) การรองรับ Multi-Window เป็นข้อบังคับสำหรับอุปกรณ์ที่มีความกว้างหน้าจอ 600 dp ขึ้นไป และนักพัฒนาทุกคนต้องปรับแอปของตนให้เข้ากับ การเปลี่ยนแปลงขนาดหน้าต่าง ที่อาจเกิดขึ้น

ประเด็นสำคัญ

  • Multi-Window — ระบบทำงานหลายอย่างพร้อมกันของ Android มีสามโหมด: Split Screen, PiP, Freeform
  • Split Screen — สองแอปเคียงข้างกัน ตัวแบ่งสามารถลากได้ สัดส่วนเปลี่ยนได้
  • Picture-in-Picture — วิดีโอในหน้าต่างขนาดเล็กเหนือแอปอื่น ๆ
  • Freeform — หน้าต่างขนาดตามต้องการบน Android TV และหน้าจอขนาดใหญ่
  • ResizeableActivity — ธงในแมนิเฟสต์เพื่อประกาศการรองรับโหมดหลายหน้าต่าง

Multi-Window ใน Android คืออะไร?

Multi-Window คือคุณสมบัติของ Android ที่เปิดตัวในเวอร์ชัน 7.0 Nougat (API 24) ซึ่งช่วยให้เรียกใช้สองแอปขึ้นไปบนหน้าจอพร้อมกันได้ โหมดนี้เป็นคำตอบของ Google ต่อความนิยมที่เพิ่มขึ้นของแท็บเล็ตและอุปกรณ์หน้าจอขนาดใหญ่ ซึ่งโหมดงานเดียวจำกัดประสิทธิภาพการทำงาน

ก่อน Android 7.0 แต่ละแอปจะกินพื้นที่เต็มหน้าจอ — เมื่อสลับระหว่างแอป แอปก่อนหน้าจะถูกย่อเล็กสุด Multi-Window เปลี่ยนโมเดลนี้: ตอนนี้แอปสามารถกินพื้นที่ส่วนหนึ่งของหน้าจอในขณะที่ยังคงสถานะทำงานอยู่ได้ สำหรับนักพัฒนา นี่หมายความว่า onConfigurationChanged และการจัดการการเปลี่ยนแปลงขนาดกลายเป็นสิ่งจำเป็น

บน Android 12L (2022) Google ทำให้ Multi-Window เป็นโหมดเริ่มต้นสำหรับอุปกรณ์หน้าจอขนาดใหญ่ — แอปทั้งหมดบนแท็บเล็ตทำงานในโหมดที่อนุญาตให้มีหลายหน้าต่างได้ ข้อยกเว้นเพียงอย่างเดียวคือแอปที่มีการห้ามอย่างชัดเจนในแมนิเฟสต์

โหมด Multi-Window: Split Screen, PiP, Freeform

Split Screen — โหมดที่พบบ่อยที่สุด หน้าจอถูกแบ่งเป็นสองส่วนในแนวนอนหรือแนวตั้ง ผู้ใช้ลากตัวแบ่ง ใช้ได้บนโทรศัพท์และแท็บเล็ต เปิดใช้งานผ่าน Overview (Recents) — โดยการลากไอคอนแอปไปที่ขอบบนหรือล่าง

Picture-in-Picture (PiP) — โหมดสำหรับแอปวิดีโอและการนำทาง เนื้อหาจะแสดงในหน้าต่างขนาดเล็กลอย (ประมาณ 15–25% ของหน้าจอ) ที่สามารถย้ายได้ ใช้ได้บน Android 8.0+ หากต้องการเปิดใช้งาน ให้ใช้ enterPictureInPictureMode() ใน Activity

Freeform — โหมดสำหรับหน้าต่างขนาดตามต้องการ คล้ายกับตัวจัดการหน้าต่างบนเดสก์ท็อป ใช้ได้บน Android TV และอุปกรณ์หน้าจอขนาดใหญ่บางรุ่นจากผู้ผลิต (Samsung DeX) แอปทำงานในหน้าต่างที่มีแถบชื่อเรื่องและ ปุ่มควบคุม

Multi-Window ทำงานอย่างไร

เมื่อผู้ใช้เปิดใช้งาน Multi-Window Android จะสร้างอินสแตนซ์ Activity ใหม่สำหรับแต่ละแอปและจัดสรรพื้นที่หน้าจอที่มีอยู่ Activity ถูกวางใน Task แยกกัน แต่ใช้ StackView เดียวกันกับตัวแบ่งระหว่างกัน

ระบบแจ้งให้แต่ละ Activity ทราบเกี่ยวกับการเปลี่ยนแปลงขนาดผ่าน onConfigurationChanged() หาก Activity ไม่จัดการเหตุการณ์นี้ มันจะถูกสร้างใหม่ สำหรับ Split Screen ความกว้างของหน้าต่างสามารถลดลงได้ถึง 220 dp — ความกว้างขั้นต่ำที่รองรับโดยแพลตฟอร์ม

Android อนุญาตให้แอปประกาศความกว้างขั้นต่ำผ่าน android:minWidth และ android:minHeight ในแมนิเฟสต์ หากพื้นที่ที่มีอยู่น้อยกว่าค่าเหล่านี้ Activity จะเข้าสู่สถานะหยุดชั่วคราว

การปรับ Activity ให้เข้ากับโหมดหลายหน้าต่าง

เพื่อรองรับ Multi-Window คุณต้องตั้งธง android:resizeableActivity="true" ในแมนิเฟสต์ ซึ่งหมายความว่าแอปสามารถปรับขนาดเมื่อหน้าต่างเปลี่ยน โดยค่าเริ่มต้นบน Android 12L+ แอปทั้งหมดถือว่าสามารถปรับขนาดได้ — ธงจะถูกละเว้น

เมื่อขนาดหน้าต่างเปลี่ยน Activity สามารถถูกสร้างใหม่ (ค่าเริ่มต้น) หรือจัดการเหตุการณ์ใน onConfigurationChanged หากระบุ configChanges="screenSize|smallestScreenSize" ในแมนิเฟสต์ ขอแนะนำให้ระบุ configChanges สำหรับ Activity หลักเพื่อหลีกเลี่ยงการสูญเสียสถานะ

xml
<activity
    android:name=".MainActivity"
    android:resizeableActivity="true"
    android:configChanges="screenSize|smallestScreenSize|orientation" />

สำหรับแอปที่ไม่รองรับการปรับขนาด Android จะแสดงกล่องโต้ตอบคำเตือน ในกรณีนี้ เมื่อเปลี่ยนไปใช้โหมดหลายหน้าต่าง ระบบอาจยุติ Activity และแสดง snackbar พร้อมข้อเสนอให้เริ่มใหม่

Multi-Window และวงจรชีวิตของ Activity

Multi-Window เปลี่ยนแปลงวงจรชีวิตมาตรฐานของ Activity เมื่อแอปอื่นกลายเป็นทำงานในหน้าต่างข้างเคียง Activity ปัจจุบันได้รับการเรียก onPause() แต่ไม่ใช่ onStop() — มันยังคงมองเห็นได้แม้จะไม่ได้อยู่ในโฟกัส นี่เป็นสิ่งสำคัญ: เครื่องเล่นวิดีโอควรเล่นต่อที่ onPause ไม่ใช่ที่ onStop

นักพัฒนาต้องแยกความแตกต่างระหว่างสถานะ: onPause + isInMultiWindowMode() = true หมายถึงเพียงการสูญเสียโฟกัส ไม่ใช่การออกจากหน้าจอ สำหรับวิดีโอและแอนิเมชัน นี่เป็นสัญญาณให้ไม่หยุดการเล่น แต่เพียงยกเลิกการเลือกองค์ประกอบควบคุม

เมื่อออกจาก Multi-Window onMultiWindowModeChanged() จะถูกเรียกก่อน onResume() ซึ่งให้โอกาสในการสร้างอินเทอร์เฟซใหม่สำหรับโหมดเต็มหน้าจอก่อนที่ผู้ใช้จะเริ่มโต้ตอบ

แนวทางปฏิบัติที่ดีที่สุดสำหรับ Multi-Window

กฎข้อแรกคือการบันทึกสถานะ ในโหมดหลายหน้าต่าง Activity สามารถถูกสร้างใหม่ได้ทุกเวลา ใช้ SavedStateHandle ใน ViewModel หรือ onSaveInstanceState สำหรับข้อมูลทั้งหมดที่ควรคงอยู่ระหว่างการเปลี่ยนแปลงการกำหนดค่า

กฎข้อที่สองคือทดสอบที่ความกว้างขั้นต่ำ 220 dp ค่านี้ถือเป็นหน้าต่างที่แคบที่สุดใน Split Screen อินเทอร์เฟซควรยังคงอ่านได้และใช้งานได้ หากองค์ประกอบบางอย่างเกินขอบเขต ให้ใช้ Window Size Class เพื่อสลับระหว่างเลย์เอาต์

กฎข้อที่สามคือปิดการทำงานที่ไม่ทำงานใน Multi-Window ตัวอย่างเช่น กล้อง อาจไม่พร้อมใช้งานหากหน้าจอเล็กเกินไป ตรวจสอบ isInMultiWindowMode() ก่อนเริ่มกล้องหรือฟังก์ชันเต็มหน้าจออื่น ๆ

คำถามที่พบบ่อย

จะปิดการใช้งาน Multi-Window สำหรับแอปของฉันได้อย่างไร?

ตั้งค่า android:resizeableActivity="false" ในแมนิเฟสต์ บน Android 12L+ ธงจะถูกละเว้นสำหรับอุปกรณ์หน้าจอขนาดใหญ่ ดังนั้นสำหรับการห้ามโดยสมบูรณ์ให้ใช้ android:maxAspectRatio

จะตรวจสอบได้อย่างไรว่าแอปอยู่ใน Multi-Window?

เรียก isInMultiWindowMode() จาก Activity เมธอดจะคืนค่า true หากแอปกำลังทำงานใน Split Screen, PiP หรือ Freeform คุณยังสามารถสมัครรับ onMultiWindowModeChanged() ได้

Multi-Window ทำงานบน Android TV หรือไม่?

บน Android TV มีเฉพาะโหมด Picture-in-Picture เท่านั้นที่ใช้งานได้ Split Screen และ Freeform ไม่รองรับ — ทีวีใช้หน้าจอหลักหนึ่งหน้าจอพร้อมหน้าต่าง PiP ที่มุม

เกิดอะไรขึ้นกับบริการพื้นหน้าใน Multi-Window?

บริการพื้นหน้ายังคงทำงานต่อไปโดยไม่ขึ้นกับโหมด อย่างไรก็ตาม หากแอปเปลี่ยนเป็น PiP ระบบอาจหยุดการทำงานชั่วคราวเพื่อประหยัดทรัพยากร

จะจัดการกับการลากและวางระหว่างหน้าต่างได้อย่างไร?

Android รองรับ การลากและวาง ระหว่างหน้าต่างใน Multi-Window ผ่าน ClipData และ View.OnDragListener ข้อมูลจะถูกถ่ายโอนผ่าน ContentProvider หรือ Intent ด้วย FLAG_GRANT_READ_URI_PERMISSION

สรุป

  • Multi-Window — การทำงานหลายอย่างพร้อมกันของ Android มีสามโหมดสำหรับการทำงานแอปพร้อมกัน
  • Split Screen — การแบ่งหน้าจอเป็นสองส่วนด้วยตัวแบ่งที่ลากได้
  • Picture-in-Picture — วิดีโอในหน้าต่างขนาดเล็กสำหรับ Android 8.0+
  • Freeform — หน้าต่างขนาดตามต้องการบน Android TV และ Samsung DeX
  • resizeableActivity — ธงบังคับในแมนิเฟสต์สำหรับการรองรับโหมด
  • onMultiWindowModeChanged — คอลแบ็กสำหรับสร้างอินเทอร์เฟซใหม่เมื่อเข้า/ออก
  • บทสรุป — Multi-Window เป็นข้อบังคับสำหรับแอปทั้งหมดบนหน้าจอขนาดใหญ่ตั้งแต่ปี 2022

เราจะพัฒนาแอปพลิเคชันบนมือถือแบบครบวงจร

IT Sectr สร้างแอปพลิเคชัน iOS และ Android สำหรับสตาร์ทอัพและธุรกิจตั้งแต่ปี 2017 เราจะให้คำแนะนำและเสนอวิธีแก้ปัญหาที่ดีที่สุดแก่คุณ

ปรึกษาโครงการ

อ่านเพิ่มเติม