Multi-Window Android میں ملٹی ٹاسکنگ طریقوں کا ایک سیٹ ہے جو ایک ساتھ اسکرین پر متعدد ایپلیکیشنز چلانے کی اجازت دیتا ہے۔ سسٹم میں تین طریقے شامل ہیں: اسکرین کو دو حصوں میں تقسیم کرنے کے لیے Split Screen، منی ونڈو میں ویڈیو کے لیے Picture-in-Picture، اور بڑی اسکرینوں پر صوابدیدی سائز کی ونڈوز کے لیے Freeform۔ Android Developers (2025) کے مطابق، 600 dp یا اس سے زیادہ اسکرین چوڑائی والے آلات کے لیے Multi-Window سپورٹ لازمی ہے، اور ہر ڈویلپر کو اپنی ایپ کو ممکنہ ونڈو سائز تبدیلیوں کے مطابق ڈھالنا چاہیے۔
اہم نکات
Multi-Window ایک Android فیچر ہے جو ورژن 7.0 Nougat (API 24) میں متعارف کرایا گیا تھا جو ایک ساتھ اسکرین پر دو یا زیادہ ایپس چلانے کی اجازت دیتا ہے۔ یہ طریقہ گولیوں اور بڑی اسکرین والے آلات کی بڑھتی ہوئی مقبولیت کے جواب میں Google کا ردعمل تھا، جہاں سنگل ٹاسک موڈ پیداواری صلاحیت کو محدود کرتا ہے۔
Android 7.0 سے پہلے، ہر ایپ پوری اسکرین پر قبضہ کرتی تھی — ایپس کے درمیان سوئچ کرتے وقت، پچھلی ایپ چھوٹی ہو جاتی تھی۔ Multi-Window نے اس ماڈل کو تبدیل کر دیا: اب ایک ایپ اپنی فعال حالت برقرار رکھتے ہوئے اسکرین کے حصے پر قبضہ کر سکتی ہے۔ ڈویلپرز کے لیے، اس کا مطلب ہے کہ onConfigurationChanged اور سائز کی تبدیلیوں کو ہینڈل کرنا لازمی ہو جاتا ہے۔
Android 12L (2022) پر، Google نے بڑی اسکرین والے آلات کے لیے Multi-Window کو ڈیفالٹ موڈ بنا دیا — ٹیبلیٹس پر تمام ایپس ایسے موڈ میں چلتی ہیں جو ملٹی ونڈو کی اجازت دیتا ہے۔ صرف مستثنیٰ وہ ایپس ہیں جن پر مینی فیسٹ میں واضح پابندی ہے۔
Split Screen — سب سے عام طریقہ۔ اسکرین افقی یا عمودی طور پر دو حصوں میں تقسیم ہوتی ہے، صارف تقسیم کرنے والے کو گھسیٹتا ہے۔ فونز اور ٹیبلیٹس پر دستیاب۔ Overview (Recents) کے ذریعے فعال ہوتا ہے — ایپ آئیکن کو اوپری یا نچلے کنارے پر گھسیٹ کر۔
Picture-in-Picture (PiP) — ویڈیو اور نیویگیشن ایپس کے لیے ایک موڈ۔ مواد ایک فلوٹنگ منی ونڈو (اسکرین کا تقریباً 15–25%) میں دکھایا جاتا ہے جسے منتقل کیا جا سکتا ہے۔ Android 8.0+ پر دستیاب۔ فعال کرنے کے لیے، Activity میں enterPictureInPictureMode() استعمال کریں۔
Freeform — صوابدیدی سائز کی ونڈوز کے لیے ایک موڈ، ڈیسک ٹاپ ونڈو مینیجرز کی طرح۔ Android TV اور کچھ مینوفیکچررز کے بڑی اسکرین والے آلات (Samsung DeX) پر دستیاب۔ ایپس ٹائٹل بار اور کنٹرول بٹن والی ونڈوز میں چلتی ہیں۔
جب کوئی صارف Multi-Window کو فعال کرتا ہے، Android ہر ایپ کے لیے ایک نیا Activity انسٹنس بناتا ہے اور دستیاب اسکرین کی جگہ تقسیم کرتا ہے۔ Activity علیحدہ Task میں رکھے جاتے ہیں لیکن ان کے درمیان تقسیم کرنے والے کے ساتھ ایک ہی StackView استعمال کرتے ہیں۔
سسٹم ہر Activity کو onConfigurationChanged() کے ذریعے سائز کی تبدیلی کے بارے میں مطلع کرتا ہے۔ اگر Activity اس ایونٹ کو ہینڈل نہیں کرتی ہے، تو اسے دوبارہ بنایا جاتا ہے۔ Split Screen کے لیے، ونڈو کی چوڑائی 220 dp تک کم ہو سکتی ہے — پلیٹ فارم کے ذریعے تعاون یافتہ کم از کم چوڑائی۔
Android ایپ کو مینی فیسٹ میں android:minWidth اور android:minHeight کے ذریعے کم از کم چوڑائی کا اعلان کرنے کی اجازت دیتا ہے۔ اگر دستیاب جگہ ان اقدار سے کم ہے، تو Activity توقف میں چلی جاتی ہے۔
Multi-Window کو سپورٹ کرنے کے لیے، آپ کو مینی فیسٹ میں فلیگ android:resizeableActivity="true" سیٹ کرنا ہوگا۔ اس کا مطلب ہے کہ ونڈو تبدیل ہونے پر ایپ سائز تبدیل کر سکتی ہے۔ Android 12L+ پر ڈیفالٹ طور پر، تمام ایپس کو resizeable سمجھا جاتا ہے — فلیگ کو نظر انداز کیا جاتا ہے۔
جب ونڈو کا سائز تبدیل ہوتا ہے، Activity کو دوبارہ بنایا جا سکتا ہے (ڈیفالٹ) یا مینی فیسٹ میں configChanges="screenSize|smallestScreenSize" مخصوص ہونے پر onConfigurationChanged میں ایونٹ کو ہینڈل کیا جا سکتا ہے۔ حالت کھونے سے بچنے کے لیے اہم Activity کے لیے configChanges مخصوص کرنے کی سفارش کی جاتی ہے۔
<activity
android:name=".MainActivity"
android:resizeableActivity="true"
android:configChanges="screenSize|smallestScreenSize|orientation" />
ان ایپس کے لیے جو سائز تبدیل کرنے کی حمایت نہیں کرتیں، Android ایک انتباہی ڈائیلاگ دکھاتا ہے۔ اس صورت میں، ملٹی ونڈو موڈ میں سوئچ کرنے پر، سسٹم Activity کو ختم کر سکتا ہے اور دوبارہ شروع کرنے کی پیشکش کے ساتھ snackbar دکھا سکتا ہے۔
Multi-Window معیاری Activity لائف سائیکل کو تبدیل کرتا ہے۔ جب ملحقہ ونڈو میں کوئی اور ایپ فعال ہو جاتی ہے، موجودہ Activity کو onPause() کا کال ملتا ہے لیکن onStop() نہیں — یہ نظر آتی رہتی ہے، اگرچہ فوکس میں نہ ہو۔ یہ اہم ہے: ایک ویڈیو پلیئر کو onPause پر چلتا رہنا چاہیے، onStop پر نہیں۔
ڈویلپرز کو حالتوں میں فرق کرنے کی ضرورت ہے: onPause + isInMultiWindowMode() = true کا مطلب صرف فوکس کا کھونا ہے، اسکرین سے باہر نکلنا نہیں۔ ویڈیو اور اینیمیشن کے لیے، یہ پلے بیک کو روکنے کا نہیں بلکہ صرف کنٹرول عناصر کو غیر منتخب کرنے کا اشارہ ہے۔
Multi-Window سے باہر نکلتے وقت، onMultiWindowModeChanged() onResume() سے پہلے بلایا جاتا ہے۔ یہ صارف کے تعامل شروع کرنے سے پہلے فل سکرین موڈ کے لیے انٹرفیس کو دوبارہ تعمیر کرنے کا موقع دیتا ہے۔
پہلا اصول حالت کو محفوظ کرنا ہے۔ ملٹی ونڈو موڈ میں، Activity کسی بھی لمحے دوبارہ بنائی جا سکتی ہے۔ کنفیگریشن تبدیلیوں کے درمیان برقرار رہنے والے تمام ڈیٹا کے لیے ViewModel میں SavedStateHandle یا onSaveInstanceState استعمال کریں۔
دوسرا اصول کم از کم چوڑائی 220 dp پر ٹیسٹ کرنا ہے۔ یہ قدر Split Screen میں سب سے تنگ ونڈو سمجھی جاتی ہے۔ انٹرفیس پڑھنے کے قابل اور فعال رہنا چاہیے۔ اگر کچھ عناصر حد سے باہر جاتے ہیں، تو لے آؤٹ کے درمیان سوئچ کرنے کے لیے Window Size Class استعمال کریں۔
تیسرا اصول ان فعالیتوں کو غیر فعال کرنا ہے جو Multi-Window میں کام نہیں کرتیں۔ مثال کے طور پر، اگر اسکرین بہت چھوٹی ہے تو کیمرہ دستیاب نہیں ہو سکتا۔ کیمرہ یا دیگر فل سکرین فنکشن شروع کرنے سے پہلے isInMultiWindowMode() چیک کریں۔
اکثر پوچھے گئے سوالات
مینی فیسٹ میں android:resizeableActivity="false" سیٹ کریں۔ Android 12L+ پر، بڑی اسکرین والے آلات کے لیے فلیگ کو نظر انداز کیا جاتا ہے، لہٰذا مکمل پابندی کے لیے android:maxAspectRatio استعمال کریں۔
Activity سے isInMultiWindowMode() کال کریں۔ طریقہ true لوٹاتا ہے اگر ایپ Split Screen، PiP یا Freeform میں چل رہی ہے۔ آپ onMultiWindowModeChanged() کو سبسکرائب بھی کر سکتے ہیں۔
Android TV پر صرف Picture-in-Picture موڈ دستیاب ہے۔ Split Screen اور Freeform تعاون یافتہ نہیں ہیں — TVs کونے میں PiP ونڈو کے ساتھ ایک مرکزی اسکرین استعمال کرتے ہیں۔
Foreground سروس موڈ سے قطع نظر کام جاری رکھتی ہے۔ تاہم، اگر ایپ PiP میں سوئچ کرتی ہے، تو سسٹم وسائل بچانے کے لیے عارضی طور پر عملدرآمد روک سکتا ہے۔
Android ClipData اور View.OnDragListener کے ذریعے Multi-Window میں ونڈوز کے درمیان Drag and Drop کو سپورٹ کرتا ہے۔ FLAG_GRANT_READ_URI_PERMISSION کے ساتھ ContentProvider یا Intent کے ذریعے ڈیٹا منتقل کیا جاتا ہے۔
خلاصہ
ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے
IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔
مزید پڑھیں