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 — σημαία στο manifest για δήλωση υποστήριξης λειτουργίας πολλαπλών παραθύρων.

Τι είναι το Multi-Window στο Android;

Multi-Window — είναι μια λειτουργία Android που εισήχθη στην έκδοση 7.0 Nougat (API 24), η οποία επιτρέπει την εκτέλεση δύο ή περισσότερων εφαρμογών ταυτόχρονα στην οθόνη. Η λειτουργία ήταν η απάντηση της Google στην αυξανόμενη δημοτικότητα των tablet και συσκευών με μεγάλη οθόνη, όπου η λειτουργία μίας εργασίας περιορίζει την παραγωγικότητα.

Πριν από το Android 7.0 κάθε εφαρμογή καταλάμβανε ολόκληρη την οθόνη — κατά την εναλλαγή μεταξύ εφαρμογών, η προηγούμενη ελαχιστοποιούνταν. Το Multi-Window άλλαξε αυτό το μοντέλο: τώρα η εφαρμογή μπορεί να καταλαμβάνει μέρος της οθόνης, παραμένοντας ενεργή. Για τον προγραμματιστή, αυτό σημαίνει ότι το onConfigurationChanged και ο χειρισμός αλλαγών μεγέθους καθίστανται υποχρεωτικά.

Στο Android 12L (2022) η Google κατέστησε το Multi-Window προεπιλεγμένη λειτουργία για συσκευές με μεγάλη οθόνη — όλες οι εφαρμογές στα tablet εκτελούνται σε λειτουργία που επιτρέπει πολλαπλά παράθυρα. Εξαίρεση αποτελούν μόνο εφαρμογές με ρητή απαγόρευση στο manifest.

Λειτουργίες Multi-Window: Split Screen, PiP, Freeform

Split Screen — η πιο διαδεδομένη λειτουργία. Η οθόνη χωρίζεται σε δύο μέρη οριζόντια ή κάθετα, ο χρήστης σύρει τον διαχωριστή. Διαθέσιμο σε τηλέφωνα και tablet. Ενεργοποιείται μέσω Overview (Recents) — σύροντας το εικονίδιο της εφαρμογής προς την επάνω ή κάτω άκρη.

Picture-in-Picture (PiP) — λειτουργία για εφαρμογές βίντεο και πλοήγησης. Το περιεχόμενο εμφανίζεται σε ένα πλωτό μικρό παράθυρο (περίπου 15–25% της οθόνης) που μπορεί να μετακινηθεί. Διαθέσιμο σε Android 8.0+. Για ενεργοποίηση χρησιμοποιείται το enterPictureInPictureMode() στο Activity.

Freeform — λειτουργία παραθύρων αυθαίρετου μεγέθους, παρόμοια με τους διαχειριστές παραθύρων επιτραπέζιου υπολογιστή. Διαθέσιμο σε Android TV και σε ορισμένες συσκευές μεγάλης οθόνης κατασκευαστών (Samsung DeX). Οι εφαρμογές εκτελούνται σε παράθυρα με τίτλο και κουμπιά ελέγχου.

Πώς λειτουργεί το Multi-Window

Όταν ο χρήστης ενεργοποιεί το Multi-Window, το Android δημιουργεί μια νέα παρουσία Activity για κάθε εφαρμογή και κατανέμει τον διαθέσιμο χώρο της οθόνης. Οι δραστηριότητες τοποθετούνται σε ξεχωριστά Task, αλλά χρησιμοποιούν το ίδιο StackView με διαχωριστή μεταξύ τους.

Το σύστημα ειδοποιεί κάθε Activity για αλλαγή μεγέθους μέσω onConfigurationChanged(). Εάν το Activity δεν χειρίζεται αυτό το συμβάν — αναδημιουργείται (recreate). Για Split Screen το πλάτος παραθύρου μπορεί να μειωθεί έως 220 dp — το ελάχιστο πλάτος που υποστηρίζεται από την πλατφόρμα.

Το Android επιτρέπει στην εφαρμογή να δηλώσει ελάχιστο πλάτος μέσω android:minWidth και android:minHeight στο manifest. Εάν ο διαθέσιμος χώρος είναι μικρότερος από τις καθορισμένες τιμές — το Activity τίθεται σε παύση.

Προσαρμογή Activity σε λειτουργία πολλαπλών παραθύρων

Για υποστήριξη Multi-Window πρέπει να ορίσετε τη σημαία android:resizeableActivity="true" στο manifest. Αυτό σημαίνει ότι η εφαρμογή μπορεί να αλλάζει μέγεθος όταν αλλάζει το παράθυρο. Από προεπιλογή στο Android 12L+ όλες οι εφαρμογές θεωρούνται resizeable — η σημαία αγνοείται.

Κατά την αλλαγή μεγέθους παραθύρου, το Activity μπορεί να αναδημιουργηθεί (προεπιλογή) ή να χειριστεί το συμβάν στο onConfigurationChanged, εάν στο manifest έχουν οριστεί 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. Για παράδειγμα, η Camera μπορεί να μην είναι διαθέσιμη εάν η οθόνη είναι πολύ μικρή. Ελέγξτε το isInMultiWindowMode() πριν από την εκκίνηση της κάμερας ή άλλων λειτουργιών πλήρους οθόνης.

Συχνές ερωτήσεις

Πώς να απαγορεύσω το Multi-Window για την εφαρμογή μου;

Ορίστε android:resizeableActivity="false" στο manifest. Σε 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 στη γωνία.

Τι συμβαίνει με την foreground-υπηρεσία σε Multi-Window;

Η foreground-υπηρεσία συνεχίζει τη λειτουργία της ανεξάρτητα από τη λειτουργία. Αλλά εάν η εφαρμογή μεταβεί σε PiP, το σύστημα μπορεί να αναστείλει προσωρινά την εκτέλεση για εξοικονόμηση πόρων.

Πώς να χειριστώ το Drag and Drop μεταξύ παραθύρων;

Το Android υποστηρίζει Drag and Drop μεταξύ παραθύρων σε 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 — υποχρεωτική σημαία στο manifest για υποστήριξη λειτουργίας.
  • onMultiWindowModeChanged — callback για αναδόμηση διεπαφής κατά είσοδο/έξοδο.
  • Συμπέρασμα — Το Multi-Window είναι υποχρεωτικό για υποστήριξη σε όλες τις εφαρμογές σε μεγάλες οθόνες από το 2022.

Θα αναπτύξουμε μια εφαρμογή για κινητά έτοιμη για χρήση

Η IT Sectr δημιουργεί εφαρμογές iOS και Android για νεοφυείς επιχειρήσεις και επιχειρήσεις από το 2017. Θα σας συμβουλεύσουμε και θα προτείνουμε την καλύτερη λύση.

Συζήτηση έργου

Διαβάστε επίσης