Multi-Window: Android-এ মাল্টিটাস্কিং মোডের সারমর্ম

লেখক: IT Sectr প্রকাশিত: 2026-06-08 পড়ার সময়: 10 মিনিট

Multi-Window হল Android-এ মাল্টিটাস্কিং মোডের একটি সেট যা একসঙ্গে স্ক্রিনে একাধিক অ্যাপ চালানোর অনুমতি দেয়। সিস্টেমে তিনটি মোড অন্তর্ভুক্ত: স্ক্রিনকে দুটি ভাগে বিভক্ত করার জন্য Split Screen, মিনি-উইন্ডোতে ভিডিওর জন্য Picture-in-Picture এবং বড় স্ক্রিনে ইচ্ছামতো আকারের উইন্ডোর জন্য Freeform। Android Developers (2025) অনুসারে, 600 dp বা তার বেশি স্ক্রিন প্রস্থের ডিভাইসগুলির জন্য Multi-Window সমর্থন বাধ্যতামূলক, এবং প্রতিটি ডেভেলপারকে সম্ভাব্য উইন্ডো আকার পরিবর্তনের সাথে তাদের অ্যাপকে অভিযোজিত করতে হবে।

মূল বিষয়

  • Multi-Window — তিনটি মোড সহ Android মাল্টিটাস্কিং সিস্টেম: Split Screen, PiP, Freeform।
  • Split Screen — দুটি অ্যাপ পাশাপাশি, বিভাজক টেনে আনা যায়, অনুপাত পরিবর্তন হয়।
  • Picture-in-Picture — অন্যান্য অ্যাপের উপরে মিনি-উইন্ডোতে ভিডিও।
  • Freeform — Android TV এবং বড় স্ক্রিনে ইচ্ছামতো আকারের উইন্ডো।
  • ResizeableActivity — মাল্টি-উইন্ডো মোড সমর্থন ঘোষণার জন্য ম্যানিফেস্টে ফ্ল্যাগ।

Android-এ Multi-Window কী?

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+-এ উপলব্ধ। সক্রিয় করতে, Activity-তে enterPictureInPictureMode() ব্যবহার করুন।

Freeform — ইচ্ছামতো আকারের উইন্ডোর জন্য একটি মোড, ডেস্কটপ উইন্ডো ম্যানেজারের মতো। Android TV এবং নির্মাতাদের কিছু বড় স্ক্রিন ডিভাইসে (Samsung DeX) উপলব্ধ। অ্যাপগুলি শিরোনাম বার এবং নিয়ন্ত্রণ বোতাম সহ উইন্ডোতে চলে।

Multi-Window কীভাবে কাজ করে

যখন একজন ব্যবহারকারী Multi-Window সক্রিয় করে, Android প্রতিটি অ্যাপের জন্য একটি নতুন Activity ইনস্ট্যান্স তৈরি করে এবং উপলব্ধ স্ক্রিন স্থান বিতরণ করে। Activities পৃথক Task-এ রাখা হয় কিন্তু তাদের মধ্যে বিভাজক সহ একই StackView ব্যবহার করে।

সিস্টেম প্রতিটি Activity-কে onConfigurationChanged()-এর মাধ্যমে আকার পরিবর্তন সম্পর্কে জানায়। যদি Activity এই ইভেন্টটি হ্যান্ডেল না করে, তবে এটি পুনরায় তৈরি হয়। Split Screen-এর জন্য, উইন্ডোর প্রস্থ 220 dp পর্যন্ত কমতে পারে — প্ল্যাটফর্ম দ্বারা সমর্থিত ন্যূনতম প্রস্থ।

Android অ্যাপকে ম্যানিফেস্টে android:minWidth এবং android:minHeight-এর মাধ্যমে ন্যূনতম প্রস্থ ঘোষণা করার অনুমতি দেয়। যদি উপলব্ধ স্থান এই মানগুলির থেকে কম হয়, তাহলে Activity বিরতিতে চলে যায়।

Activity-কে মাল্টি-উইন্ডো মোডে অভিযোজিত করা

Multi-Window সমর্থন করতে, আপনাকে ম্যানিফেস্টে android:resizeableActivity="true" ফ্ল্যাগ সেট করতে হবে। এর অর্থ হল উইন্ডো পরিবর্তন হলে অ্যাপ আকার পরিবর্তন করতে পারে। Android 12L+-এ ডিফল্টভাবে, সমস্ত অ্যাপ resizeable হিসাবে বিবেচিত হয় — ফ্ল্যাগটি উপেক্ষা করা হয়।

যখন উইন্ডোর আকার পরিবর্তন হয়, Activity পুনরায় তৈরি করা যেতে পারে (ডিফল্ট) অথবা ম্যানিফেস্টে configChanges="screenSize|smallestScreenSize" নির্দিষ্ট থাকলে onConfigurationChanged-এ ইভেন্টটি হ্যান্ডেল করা যেতে পারে। অবস্থা হারানো এড়াতে মূল Activities-এর জন্য configChanges নির্দিষ্ট করার সুপারিশ করা হয়।

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 যেকোনো মুহূর্তে পুনরায় তৈরি করা যেতে পারে। কনফিগারেশন পরিবর্তনের মধ্যে টিকে থাকা সমস্ত ডেটার জন্য ViewModel-এ SavedStateHandle বা onSaveInstanceState ব্যবহার করুন।

দ্বিতীয় নিয়ম হল ন্যূনতম প্রস্থ 220 dp-এ পরীক্ষা করা। এই মানটি Split Screen-এ সবচেয়ে সরু উইন্ডো হিসেবে বিবেচিত হয়। ইন্টারফেসটি পড়ার যোগ্য এবং কার্যকরী থাকা উচিত। যদি কিছু উপাদান সীমার বাইরে যায়, তাহলে লেআউটের মধ্যে স্যুইচ করতে Window Size Class ব্যবহার করুন।

তৃতীয় নিয়ম হল সেই কার্যকারিতাগুলি নিষ্ক্রিয় করা যা Multi-Window-এ কাজ করে না। উদাহরণস্বরূপ, যদি স্ক্রিন খুব ছোট হয় তাহলে Camera উপলব্ধ নাও হতে পারে। ক্যামেরা বা অন্যান্য পূর্ণ-স্ক্রিন ফাংশন শুরু করার আগে isInMultiWindowMode() চেক করুন।

প্রায়শই জিজ্ঞাসিত প্রশ্ন

আমার অ্যাপের জন্য Multi-Window কীভাবে নিষ্ক্রিয় করবেন?

ম্যানিফেস্টে android:resizeableActivity="false" সেট করুন। Android 12L+-এ, বড় স্ক্রিন ডিভাইসের জন্য ফ্ল্যাগটি উপেক্ষা করা হয়, তাই সম্পূর্ণ নিষেধাজ্ঞার জন্য android:maxAspectRatio ব্যবহার করুন।

কীভাবে নির্ধারণ করবেন যে একটি অ্যাপ Multi-Window-এ আছে?

Activity থেকে isInMultiWindowMode() কল করুন। পদ্ধতিটি true ফেরত দেয় যদি অ্যাপ Split Screen, PiP বা Freeform-এ চলছে। আপনি onMultiWindowModeChanged()-এ সাবস্ক্রাইবও করতে পারেন।

Multi-Window কি Android TV-তে কাজ করে?

Android TV-তে, শুধুমাত্র Picture-in-Picture মোড উপলব্ধ। Split Screen এবং Freeform সমর্থিত নয় — টিভিগুলি কোণে PiP উইন্ডো সহ একটি প্রধান স্ক্রিন ব্যবহার করে।

Multi-Window-এ foreground সার্ভিসের কী হয়?

Foreground সার্ভিস মোড নির্বিশেষে কাজ চালিয়ে যায়। তবে, যদি অ্যাপ PiP-এ সুইচ করে, সিস্টেম সম্পদ সংরক্ষণের জন্য এক্সিকিউশন সাময়িকভাবে বিরতি দিতে পারে।

উইন্ডোর মধ্যে Drag and Drop কীভাবে হ্যান্ডেল করবেন?

Android ClipData এবং View.OnDragListener-এর মাধ্যমে Multi-Window-এ উইন্ডোর মধ্যে Drag and Drop সমর্থন করে। FLAG_GRANT_READ_URI_PERMISSION সহ ContentProvider বা Intent-এর মাধ্যমে ডেটা স্থানান্তরিত হয়।

সারসংক্ষেপ

  • Multi-Window — একসঙ্গে অ্যাপ কাজের জন্য তিনটি মোড সহ Android মাল্টিটাস্কিং।
  • Split Screen — টেনে আনা যায় এমন বিভাজক সহ স্ক্রিনকে দুটি ভাগে বিভক্ত করা।
  • Picture-in-Picture — Android 8.0+-এর জন্য মিনি-উইন্ডোতে ভিডিও।
  • Freeform — Android TV এবং Samsung DeX-এ ইচ্ছামতো আকারের উইন্ডো।
  • resizeableActivity — মোড সমর্থনের জন্য ম্যানিফেস্টে বাধ্যতামূলক ফ্ল্যাগ।
  • onMultiWindowModeChanged — প্রবেশ/প্রস্থানে ইন্টারফেস পুনর্নির্মাণের জন্য কলব্যাক।
  • উপসংহার — 2022 সাল থেকে বড় স্ক্রিনে সমস্ত অ্যাপের জন্য Multi-Window বাধ্যতামূলক।

আমরা একটি মোবাইল অ্যাপ্লিকেশন টার্নকি তৈরি করব

IT Sectr 2017 সাল থেকে স্টার্টআপ এবং ব্যবসার জন্য iOS এবং Android অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।

প্রকল্প নিয়ে আলোচনা করুন

আরও পড়ুন