<ক্রিয়াকলাপ>

সিনট্যাক্স:
<activity android:allowEmbedded=["true" | "false"]
          android:allowTaskReparenting=["true" | "false"]
          android:alwaysRetainTaskState=["true" | "false"]
          android:autoRemoveFromRecents=["true" | "false"]
          android:banner="drawable resource"
          android:canDisplayOnRemoteDevices=["true" | "false"]
          android:clearTaskOnLaunch=["true" | "false"]
          android:colorMode=[ "hdr" | "wideColorGamut"]
          android:configChanges=["colorMode", "density",
                                 "fontScale", "fontWeightAdjustment",
                                 "grammaticalGender", "keyboard",
                                 "keyboardHidden", "layoutDirection", "locale",
                                 "mcc", "mnc", "navigation", "orientation",
                                 "screenLayout", "screenSize",
                                 "smallestScreenSize", "touchscreen", "uiMode"]
          android:directBootAware=["true" | "false"]
          android:documentLaunchMode=["intoExisting" | "always" |
                                  "none" | "never"]
          android:enabled=["true" | "false"]
          android:enabledOnBackInvokedCallback=["true" | "false"]
          android:excludeFromRecents=["true" | "false"]
          android:exported=["true" | "false"]
          android:finishOnTaskLaunch=["true" | "false"]
          android:hardwareAccelerated=["true" | "false"]
          android:icon="drawable resource"
          android:immersive=["true" | "false"]
          android:label="string resource"
          android:launchMode=["standard" | "singleTop" |
                              "singleTask" | "singleInstance" | "singleInstancePerTask"]
          android:lockTaskMode=["normal" | "never" |
                              "if_whitelisted" | "always"]
          android:maxRecents="integer"
          android:maxAspectRatio="float"
          android:multiprocess=["true" | "false"]
          android:name="string"
          android:noHistory=["true" | "false"]  
          android:parentActivityName="string" 
          android:persistableMode=["persistRootOnly" | 
                                   "persistAcrossReboots" | "persistNever"]
          android:permission="string"
          android:process="string"
          android:relinquishTaskIdentity=["true" | "false"]
          android:requireContentUriPermissionFromCaller=["none" | "read" | "readAndWrite" |
                                                         "readOrWrite" | "write"] 
          android:resizeableActivity=["true" | "false"]
          android:screenOrientation=["unspecified" | "behind" |
                                     "landscape" | "portrait" |
                                     "reverseLandscape" | "reversePortrait" |
                                     "sensorLandscape" | "sensorPortrait" |
                                     "userLandscape" | "userPortrait" |
                                     "sensor" | "fullSensor" | "nosensor" |
                                     "user" | "fullUser" | "locked"]
          android:showForAllUsers=["true" | "false"]
          android:stateNotNeeded=["true" | "false"]
          android:supportsPictureInPicture=["true" | "false"]
          android:taskAffinity="string"
          android:theme="resource or theme"
          android:uiOptions=["none" | "splitActionBarWhenNarrow"]
          android:windowSoftInputMode=["stateUnspecified",
                                       "stateUnchanged", "stateHidden",
                                       "stateAlwaysHidden", "stateVisible",
                                       "stateAlwaysVisible", "adjustUnspecified",
                                       "adjustResize", "adjustPan"] >   
    ...
</activity>
এর মধ্যে রয়েছে:
<application>
থাকতে পারে:
<intent-filter>
<meta-data>
<layout>
বর্ণনা:
একটি কার্যকলাপ (একটি Activity সাবক্লাস) ঘোষণা করে যা অ্যাপ্লিকেশনের ভিজ্যুয়াল ইউজার ইন্টারফেসের অংশ প্রয়োগ করে। ম্যানিফেস্ট ফাইলে সমস্ত কার্যকলাপ অবশ্যই <activity> উপাদান দ্বারা প্রতিনিধিত্ব করা উচিত। সেখানে ঘোষিত নয় এমন যেকোনও সিস্টেম দ্বারা দেখা যায় না এবং কখনও চালানো হয় না।
গুণাবলী:
android:allowEmbedded

নির্দেশ করে যে ক্রিয়াকলাপটি অন্য কার্যকলাপের এমবেডেড চাইল্ড হিসাবে চালু করা যেতে পারে, বিশেষ করে এমন ক্ষেত্রে যেখানে শিশুটি একটি পাত্রে থাকে, যেমন অন্য কার্যকলাপের মালিকানাধীন একটি Display ৷ উদাহরণ স্বরূপ, Wear কাস্টম নোটিফিকেশনের জন্য ব্যবহৃত ক্রিয়াকলাপগুলি এটি ঘোষণা করে যাতে Wear তার প্রসঙ্গ স্ট্রীমে কার্যকলাপ প্রদর্শন করতে পারে, যা অন্য প্রক্রিয়ায় থাকে।

এই বৈশিষ্ট্যের ডিফল্ট মান false

android:allowTaskReparenting
ক্রিয়াকলাপটি যে টাস্কটি শুরু করেছিল তা থেকে সেই টাস্কে যেতে পারে কিনা তার সাথে সেই টাস্কটি সামনে আনা হলে তার সাথে একটি সম্পর্ক রয়েছে। এটি "true" যদি এটি সরাতে পারে এবং "false" যদি এটি যে কাজটি শুরু হয়েছিল তার সাথে থাকে।

এই অ্যাট্রিবিউট সেট না থাকলে, <application> এলিমেন্টের সংশ্লিষ্ট allowTaskReparenting অ্যাট্রিবিউট দ্বারা সেট করা মান কার্যকলাপের জন্য প্রযোজ্য। ডিফল্ট মান হল "false"

সাধারণত, যখন একটি ক্রিয়াকলাপ শুরু হয় তখন এটি সেই কার্যকলাপের সাথে যুক্ত থাকে যা এটি শুরু করে এবং এটি তার পুরো জীবনকাল সেখানে থাকে। আপনি এই অ্যাট্রিবিউটটি ব্যবহার করতে পারেন যাতে এটির বর্তমান টাস্কটি আর প্রদর্শিত না হলে এটির সাথে এটির সম্বন্ধ থাকে। সাধারণত, এটি একটি অ্যাপ্লিকেশনের ক্রিয়াকলাপগুলিকে সেই অ্যাপ্লিকেশনের সাথে যুক্ত মূল কাজে সরানোর জন্য ব্যবহৃত হয়।

উদাহরণস্বরূপ, যদি একটি ইমেল বার্তায় একটি ওয়েব পৃষ্ঠার একটি লিঙ্ক থাকে, লিঙ্কটি ক্লিক করা একটি কার্যকলাপ নিয়ে আসে যা পৃষ্ঠাটি প্রদর্শন করতে পারে। সেই কার্যকলাপ ব্রাউজার অ্যাপ্লিকেশন দ্বারা সংজ্ঞায়িত করা হয় কিন্তু ইমেল টাস্কের অংশ হিসাবে চালু করা হয়। যদি এটি ব্রাউজার টাস্কের সাথে পুনরায় তৈরি করা হয়, এটি দেখায় কখন ব্রাউজারটি সামনে আসে এবং যখন ইমেল টাস্ক আবার সামনে আসে তখন এটি অনুপস্থিত থাকে।

একটি কার্যকলাপের সম্বন্ধ taskAffinity বৈশিষ্ট্য দ্বারা সংজ্ঞায়িত করা হয়। একটি কাজের সখ্যতা তার মূল কার্যকলাপের সম্বন্ধ পড়ার দ্বারা নির্ধারিত হয়। অতএব, সংজ্ঞা অনুসারে, একটি রুট ক্রিয়াকলাপ সর্বদা একই সম্বন্ধযুক্ত একটি কাজে থাকে। যেহেতু "singleTask" বা "singleInstance" লঞ্চ মোডগুলির সাথে ক্রিয়াকলাপগুলি শুধুমাত্র একটি টাস্কের মূলে থাকতে পারে, তাই পুনরায় প্যারেন্টিং "standard" এবং "singleTop" মোডে সীমাবদ্ধ। (এছাড়াও launchMode অ্যাট্রিবিউট দেখুন।)

android:alwaysRetainTaskState
যে কাজটি কার্যকলাপে রয়েছে তার অবস্থা সর্বদা সিস্টেম দ্বারা রক্ষণাবেক্ষণ করা হয় কিনা। "true" যদি এটি হয়, এবং "false" যদি সিস্টেম নির্দিষ্ট পরিস্থিতিতে কাজটিকে তার প্রাথমিক অবস্থায় পুনরায় সেট করতে পারে। ডিফল্ট মান হল "false" । এই বৈশিষ্ট্যটি শুধুমাত্র একটি কাজের মূল কার্যকলাপের জন্য অর্থবহ। এটি অন্যান্য সমস্ত ক্রিয়াকলাপের জন্য উপেক্ষা করা হয়েছে৷

সাধারণত, সিস্টেম একটি টাস্ক সাফ করে, রুট কার্যকলাপের উপরে স্ট্যাক থেকে সমস্ত ক্রিয়াকলাপ সরিয়ে দেয়, নির্দিষ্ট পরিস্থিতিতে যখন ব্যবহারকারী হোম স্ক্রীন থেকে সেই টাস্কটি পুনরায় নির্বাচন করে। সাধারণত, এটি করা হয় যদি ব্যবহারকারী নির্দিষ্ট সময়ের জন্য, যেমন 30 মিনিটের জন্য টাস্কটি পরিদর্শন না করে থাকে।

যাইহোক, যখন এই বৈশিষ্ট্যটি "true" হয়, ব্যবহারকারীরা সর্বদা তার শেষ অবস্থায় টাস্কে ফিরে যান, তারা সেখানে যেভাবে পৌঁছান না কেন। এটি একটি ওয়েব ব্রাউজারের মতো একটি অ্যাপ্লিকেশনে দরকারী যেখানে অনেকগুলি স্টেট রয়েছে, যেমন একাধিক খোলা ট্যাব, যা ব্যবহারকারীরা হারাতে চান না।

android:autoRemoveFromRecents
এই অ্যাট্রিবিউট সহ অ্যাক্টিভিটি দ্বারা লঞ্চ করা টাস্কগুলি টাস্কের শেষ অ্যাক্টিভিটি সম্পূর্ণ না হওয়া পর্যন্ত সাম্প্রতিক স্ক্রিনে থাকবে কিনা। true হলে, টাস্কটি সাম্প্রতিক স্ক্রীন থেকে স্বয়ংক্রিয়ভাবে মুছে ফেলা হবে। এটি কলারের FLAG_ACTIVITY_RETAIN_IN_RECENTS ব্যবহারকে ওভাররাইড করে। এটি একটি বুলিয়ান মান হতে হবে, হয় "true" বা "false"
android:banner
একটি অঙ্কনযোগ্য সংস্থান যা এর সাথে সম্পর্কিত আইটেমের জন্য একটি বর্ধিত গ্রাফিকাল ব্যানার প্রদান করে। একটি নির্দিষ্ট ক্রিয়াকলাপের জন্য একটি ডিফল্ট ব্যানার সরবরাহ করতে <activity> ট্যাগ বা সমস্ত অ্যাপ্লিকেশন কার্যকলাপের জন্য একটি ব্যানার সরবরাহ করতে <application> ট্যাগের সাথে ব্যবহার করুন।

অ্যান্ড্রয়েড টিভি হোম স্ক্রিনে একটি অ্যাপ উপস্থাপন করতে সিস্টেমটি ব্যানার ব্যবহার করে। যেহেতু ব্যানারটি শুধুমাত্র হোম স্ক্রিনে প্রদর্শিত হয়, তাই এটি শুধুমাত্র একটি কার্যকলাপ সহ অ্যাপ্লিকেশন দ্বারা নির্দিষ্ট করা হয় যা CATEGORY_LEANBACK_LAUNCHER উদ্দেশ্য পরিচালনা করে৷

এই বৈশিষ্ট্যটি একটি অঙ্কনযোগ্য সম্পদের একটি রেফারেন্স হিসাবে সেট করা হয়েছে যার মধ্যে ছবি রয়েছে, যেমন "@drawable/banner" । কোন ডিফল্ট ব্যানার নেই.

আরও তথ্যের জন্য, টিভি অ্যাপের সাথে শুরু করুন-এ একটি হোম স্ক্রীন ব্যানার সরবরাহ করুন দেখুন।

android:canDisplayOnRemoteDevices

ক্রিয়াকলাপটি একটি দূরবর্তী ডিভাইসে প্রদর্শিত হতে পারে কিনা তা নির্দেশ করে যেটি Android চালাতে পারে বা নাও হতে পারে৷ এটি একটি বুলিয়ান মান হতে হবে, হয় "true" বা "false"

এই বৈশিষ্ট্যের ডিফল্ট মান হল "true"

android:clearTaskOnLaunch
হোম স্ক্রীন থেকে পুনরায় চালু হলে রুট ক্রিয়াকলাপ ব্যতীত, সমস্ত ক্রিয়াকলাপ টাস্ক থেকে সরানো হবে কিনা। "true" যদি কাজটি সর্বদা তার মূল কার্যকলাপে ছিনিয়ে নেওয়া হয়, এবং যদি না হয় "false" । ডিফল্ট মান হল "false" । এই বৈশিষ্ট্যটি শুধুমাত্র সেই ক্রিয়াকলাপগুলির জন্য অর্থবহ যা একটি নতুন কাজ শুরু করে - মূল কার্যকলাপ৷ টাস্কের অন্যান্য সমস্ত ক্রিয়াকলাপের জন্য এটি উপেক্ষা করা হয়েছে।

যখন মানটি "true" হয়, ব্যবহারকারীরা যখনই টাস্ক শুরু করেন, তখন তারা টাস্কে শেষবার কী করছেন তা নির্বিশেষে এবং তারা এটি ছেড়ে যাওয়ার জন্য পিছনে বা হোম বোতাম ব্যবহার করেছেন কিনা তা বিবেচনা না করেই তাদের মূল কার্যকলাপে আনা হয়৷ যখন মান "false" হয়, তখন কাজটি কিছু পরিস্থিতিতে ক্রিয়াকলাপ থেকে সাফ করা যেতে পারে, তবে সবসময় নয়। আরও তথ্যের জন্য, alwaysRetainTaskState বৈশিষ্ট্যটি দেখুন।

ধরুন ব্যবহারকারী হোম স্ক্রীন থেকে কার্যকলাপ P চালু করে, এবং সেখান থেকে কার্যকলাপ Q-তে যায়। ব্যবহারকারী পরবর্তীতে হোমে ট্যাপ করে, এবং তারপর P কার্যকলাপে ফিরে আসে। সাধারণত, ব্যবহারকারী Q কার্যকলাপ দেখেন, যেহেতু তারা P এর মধ্যে শেষবার এটিই করেছিল টাস্ক যাইহোক, যদি P এই পতাকাটিকে "true" তে সেট করে, তবে এর উপরে থাকা সমস্ত ক্রিয়াকলাপ-এই ক্ষেত্রে, Q-মুছে ফেলা হয় যখন ব্যবহারকারী হোম স্ক্রীন থেকে কার্যকলাপ P চালু করে। সুতরাং, টাস্কে ফিরে আসার সময় ব্যবহারকারী শুধুমাত্র P দেখতে পান।

যদি এই অ্যাট্রিবিউট এবং allowTaskReparenting উভয়ই "true" হয়, তাহলে যেকোন ক্রিয়াকলাপ যেগুলিকে পুনরায় অভিভাবক করা যেতে পারে সেই টাস্কে স্থানান্তরিত করা হয় যার সাথে তারা একটি সম্পর্ক ভাগ করে। বাকি কার্যক্রম তারপর বাদ দেওয়া হয়।

FLAG_ACTIVITY_RESET_TASK_IF_NEEDED সেট করা না থাকলে এই বৈশিষ্ট্যটি উপেক্ষা করা হয়৷

android:colorMode

কার্যকলাপের রঙ মোড নির্দিষ্ট করে। নির্দিষ্ট করা হলে, হয় hdr বা wideColorGamut হতে পারে।

যদি hdr , অনুরোধ করে যে কার্যকলাপটি একটি উচ্চ গতিশীল পরিসরে প্রদর্শিত হবে যদি ডিভাইসটি এটি সমর্থন করে।

যদি wideColorGamut , অনুরোধ করে যে কার্যকলাপটি সামঞ্জস্যপূর্ণ ডিভাইসগুলিতে প্রশস্ত রঙের গামুট মোডে প্রদর্শিত হবে। প্রশস্ত রঙের স্বরগ্রাম মোডে, একটি উইন্ডো আরও প্রাণবন্ত রঙ প্রদর্শন করতে SRGB স্বরগ্রামের বাইরে রেন্ডার করতে পারে। যদি ডিভাইসটি ওয়াইড কালার গামুট রেন্ডারিং সমর্থন না করে, তাহলে এই অ্যাট্রিবিউটের কোনো প্রভাব নেই। প্রশস্ত রঙের মোডে রেন্ডারিং সম্পর্কে আরও তথ্যের জন্য, প্রশস্ত রঙের সামগ্রী সহ গ্রাফিক্স উন্নত করুন দেখুন।

android:configChanges
ক্রিয়াকলাপ নিজেই পরিচালনা করে এমন কনফিগারেশন পরিবর্তনগুলি তালিকাভুক্ত করে৷ রানটাইমে যখন একটি কনফিগারেশন পরিবর্তন ঘটে, তখন কার্যকলাপটি বন্ধ হয়ে যায় এবং ডিফল্টরূপে পুনঃসূচনা হয়, কিন্তু এই বৈশিষ্ট্যের সাথে একটি কনফিগারেশন ঘোষণা করা কার্যকলাপটিকে পুনরায় চালু হতে বাধা দেয়। পরিবর্তে, কার্যকলাপ চলমান থাকে এবং এর onConfigurationChanged() পদ্ধতি বলা হয়।

দ্রষ্টব্য: অ্যাপ্লিকেশন কার্যকারিতা এবং প্রতিক্রিয়াশীলতা উন্নত করতে শুধুমাত্র বিশেষ ক্ষেত্রে এই বৈশিষ্ট্যটি ব্যবহার করুন। আরও তথ্যের জন্য, কনফিগারেশন পরিবর্তনগুলি পরিচালনা করুন দেখুন।

নিম্নলিখিত স্ট্রিংগুলি এই বৈশিষ্ট্যের জন্য বৈধ মান। একাধিক মান | দ্বারা পৃথক করা হয় , যেমন "locale|navigation|orientation"

মান বর্ণনা
"colorMode"

পর্দার রঙ মোড ক্ষমতা (রঙ স্বরগ্রাম বা গতিশীল পরিসীমা) পরিবর্তিত হয়েছে.

দ্রষ্টব্য: কালার মোড colorMode বা রানটাইমে অ্যাট্রিবিউটের সাথে অ্যাক্টিভিটি যে রঙের অনুরোধ করে তা বিভিন্ন রঙের মোডের ক্ষমতা থেকে আলাদা। এটি যে রঙের মোডটি ব্যবহার করছে তা পরিবর্তন করার জন্য একটি কার্যকলাপ কনফিগারেশনের পরিবর্তন ঘটায় না, কারণ ডিসপ্লের রঙের ক্ষমতা পরিবর্তিত হয়নি।

"density"

প্রদর্শনের ঘনত্বে একটি পরিবর্তন, যেমন ব্যবহারকারী যখন একটি ভিন্ন ডিসপ্লে স্কেল নির্দিষ্ট করে বা একটি ভিন্ন ডিসপ্লে এখন সক্রিয় থাকে।

API স্তর 24 এ যোগ করা হয়েছে

"fontScale" ফন্ট স্কেলিং ফ্যাক্টরের একটি পরিবর্তন, যেমন ব্যবহারকারী যখন একটি নতুন গ্লোবাল ফন্ট সাইজ নির্বাচন করে।
"fontWeightAdjustment" ফন্টের ওজন বৃদ্ধির পরিমাণ পরিবর্তিত হয়েছে।
"grammaticalGender" ভাষার ব্যাকরণগত লিঙ্গ পরিবর্তিত হয়েছে। GrammaticalInflectionManager দেখুন।

API স্তর 34 এ যোগ করা হয়েছে

"keyboard" কীবোর্ডের প্রকারে একটি পরিবর্তন, যেমন যখন ব্যবহারকারী একটি বহিরাগত কীবোর্ডে প্লাগ করে।
"keyboardHidden" কীবোর্ড অ্যাক্সেসযোগ্যতার পরিবর্তন, যেমন ব্যবহারকারী হার্ডওয়্যার কীবোর্ড প্রকাশ করে।
"layoutDirection"

লেআউটের দিক পরিবর্তন, যেমন বাম-থেকে-ডান (LTR) থেকে ডান-থেকে-বামে (RTL)।

API স্তর 17 এ যোগ করা হয়েছে

"locale" লোকেলে একটি পরিবর্তন, যেমন যখন ব্যবহারকারী একটি নতুন ভাষা নির্বাচন করে যেটিতে পাঠ্য প্রদর্শিত হয়।
"mcc" IMSI মোবাইল কান্ট্রি কোডে (MCC) একটি পরিবর্তন যখন একটি সিম সনাক্ত করা হয় যা MCC আপডেট করে।
"mnc" IMSI মোবাইল নেটওয়ার্ক কোড (MNC) এ পরিবর্তন যখন একটি সিম সনাক্ত করা হয় যা MNC আপডেট করে।
"navigation" TA নেভিগেশন টাইপ পরিবর্তন (ট্র্যাকবল বা ডি-প্যাড)। সাধারণত, এটি ঘটবে না।
"orientation"

স্ক্রীন ওরিয়েন্টেশনে একটি পরিবর্তন, যেমন ব্যবহারকারী যখন ডিভাইসটি ঘোরান।

দ্রষ্টব্য: যদি আপনার অ্যাপ্লিকেশনটি Android 3.2 (API স্তর 13) বা উচ্চতরকে লক্ষ্য করে, তবে "screenLayout" এবং "screenSize" কনফিগারেশনও ঘোষণা করুন, কারণ যখন কোনও ডিভাইস প্রতিকৃতি এবং ল্যান্ডস্কেপ অভিযোজনের মধ্যে স্যুইচ করে তখন স্ক্রিন লেআউট এবং স্ক্রীনের আকার পরিবর্তন হতে পারে৷

"screenLayout" স্ক্রীন লেআউটে একটি পরিবর্তন, যেমন যখন একটি ভিন্ন ডিসপ্লে সক্রিয় হয়।
"screenSize"

বর্তমান উপলব্ধ স্ক্রিনের আকারে একটি পরিবর্তন৷

এটি বর্তমান আকৃতির অনুপাতের তুলনায় বর্তমানে উপলব্ধ আকারের একটি পরিবর্তনকে প্রতিনিধিত্ব করে, তাই ব্যবহারকারী যখন ল্যান্ডস্কেপ এবং প্রতিকৃতির মধ্যে স্যুইচ করেন তখন এটি পরিবর্তিত হয়।

API স্তর 13 এ যোগ করা হয়েছে

"smallestScreenSize"

শারীরিক পর্দার আকারে একটি পরিবর্তন।

এটি অভিযোজন নির্বিশেষে আকারের পরিবর্তনের প্রতিনিধিত্ব করে, তাই এটি শুধুমাত্র তখনই পরিবর্তিত হয় যখন প্রকৃত পর্দার আকার পরিবর্তন হয়, যেমন একটি বাহ্যিক প্রদর্শনে স্যুইচ করা। এই কনফিগারেশনে একটি পরিবর্তন smallestWidth কনফিগারেশনের একটি পরিবর্তনের সাথে মিলে যায়।

API স্তর 13 এ যোগ করা হয়েছে

"touchscreen" টাচস্ক্রিনে একটি পরিবর্তন। সাধারণত, এটি ঘটবে না।
"uiMode" ব্যবহারকারী ইন্টারফেস মোডে একটি পরিবর্তন, যেমন ব্যবহারকারী যখন ডিভাইসটিকে একটি ডেস্ক বা গাড়ির ডকে রাখে বা নাইট মোড পরিবর্তন করে। বিভিন্ন UI মোড সম্পর্কে আরও তথ্যের জন্য, UiModeManager দেখুন।

API লেভেল 8 এ যোগ করা হয়েছে

এই সমস্ত কনফিগারেশন পরিবর্তন অ্যাপ্লিকেশন দ্বারা দেখা সম্পদ মান প্রভাবিত করতে পারে. তাই, যখন onConfigurationChanged() কল করা হয়, তখন পরিবর্তনটি সঠিকভাবে পরিচালনা করার জন্য ভিউ লেআউট এবং অঙ্কনযোগ্য সহ সমস্ত সংস্থান পুনরুদ্ধার করা প্রয়োজন।

দ্রষ্টব্য: মাল্টি-উইন্ডো সম্পর্কিত কনফিগারেশন পরিবর্তনগুলি পরিচালনা করতে, "screenLayout" এবং "smallestScreenSize" উভয়ই ব্যবহার করুন৷ মাল্টি-উইন্ডো Android 7.0 (API লেভেল 24) বা উচ্চতর সংস্করণে সমর্থিত।

android:directBootAware

ক্রিয়াকলাপটি ডাইরেক্ট-বুট সচেতন কিনা—অর্থাৎ, ব্যবহারকারী ডিভাইসটি আনলক করার আগে এটি চালানো যায় কিনা।

দ্রষ্টব্য: ডাইরেক্ট বুট চলাকালীন, আপনার অ্যাপ্লিকেশানের একটি কার্যকলাপ শুধুমাত্র ডিভাইস সুরক্ষিত স্টোরেজে সংরক্ষিত ডেটা অ্যাক্সেস করতে পারে।

ডিফল্ট মান হল "false"

android:documentLaunchMode
একটি টাস্ক লঞ্চ করার সময় কিভাবে একটি নতুন দৃষ্টান্ত যোগ করা হয় তা নির্দিষ্ট করে। এই বৈশিষ্ট্যটি ব্যবহারকারীকে সাম্প্রতিক স্ক্রিনে একই অ্যাপ্লিকেশন থেকে একাধিক নথি দেখানোর অনুমতি দেয়৷

এই বৈশিষ্ট্যটির চারটি মান রয়েছে, যা ব্যবহারকারী অ্যাপ্লিকেশনের সাথে একটি নথি খুললে নিম্নলিখিত প্রভাবগুলি তৈরি করে:

মান বর্ণনা
"intoExisting" সিস্টেমটি এমন একটি টাস্ক অনুসন্ধান করে যার বেস ইন্টেন্টের ComponentName এবং ডেটা ইউআরআই লঞ্চ করার অভিপ্রায়ের সাথে মেলে। যদি সিস্টেমটি এমন একটি টাস্ক খুঁজে পায়, তাহলে সিস্টেমটি টাস্কটি সাফ করে এবং রিস্টার্ট করে, রুট অ্যাক্টিভিটি onNewIntent(android.content.Intent) এ একটি কল গ্রহণ করে। যদি সিস্টেমটি এমন একটি টাস্ক খুঁজে না পায় তবে সিস্টেমটি একটি নতুন টাস্ক তৈরি করে।
"always" ক্রিয়াকলাপটি নথির জন্য একটি নতুন টাস্ক তৈরি করে, এমনকি যদি নথিটি ইতিমধ্যে খোলা থাকে। এটি FLAG_ACTIVITY_NEW_DOCUMENT এবং FLAG_ACTIVITY_MULTIPLE_TASK উভয় পতাকা সেট করার সমান।
"none" কার্যকলাপ কার্যকলাপের জন্য একটি নতুন টাস্ক তৈরি করে না। এটি ডিফল্ট মান, যা শুধুমাত্র FLAG_ACTIVITY_NEW_TASK সেট করা হলেই একটি নতুন টাস্ক তৈরি করে৷ সাম্প্রতিক স্ক্রীন ক্রিয়াকলাপটিকে ডিফল্টরূপে আচরণ করে: এটি অ্যাপের জন্য একটি একক কাজ প্রদর্শন করে, যা ব্যবহারকারীর সর্বশেষ আহ্বান করা যেকোনো কার্যকলাপ থেকে পুনরায় শুরু হয়।
"never" অভিপ্রায় FLAG_ACTIVITY_NEW_DOCUMENT থাকলেও কার্যকলাপটি একটি নতুন নথিতে চালু করা হয় না। এটি সেট করা FLAG_ACTIVITY_NEW_DOCUMENT এবং FLAG_ACTIVITY_MULTIPLE_TASK ফ্ল্যাগগুলির আচরণকে ওভাররাইড করে, যদি এইগুলির মধ্যে যেকোন একটি কার্যকলাপে সেট করা থাকে এবং সাম্প্রতিক স্ক্রীনটি অ্যাপের জন্য একটি একক কাজ প্রদর্শন করে, যা ব্যবহারকারীর সর্বশেষ আহ্বান করা যেকোনো কার্যকলাপ থেকে পুনরায় শুরু হয়৷

দ্রষ্টব্য: "none" এবং "never" ছাড়া অন্য মানগুলির জন্য, কার্যকলাপটি launchMode="standard" দিয়ে সংজ্ঞায়িত করা হয়েছে। যদি এই বৈশিষ্ট্যটি নির্দিষ্ট করা না থাকে, documentLaunchMode="none" ব্যবহার করা হয়।

android:enabled
কার্যকলাপ সিস্টেম দ্বারা তাত্ক্ষণিক করা যাবে কিনা. এটা হতে পারে "true" এবং না হলে "false" । ডিফল্ট মান হল "true"

<application> উপাদানটির নিজস্ব enabled বৈশিষ্ট্য রয়েছে যা কার্যকলাপ সহ সমস্ত অ্যাপ্লিকেশন উপাদানগুলিতে প্রযোজ্য। <application> এবং <activity> বৈশিষ্ট্য উভয়ই অবশ্যই "true" হতে হবে, কারণ উভয়টিই ডিফল্টরূপে, সিস্টেমটি ক্রিয়াকলাপটি চালু করতে সক্ষম হওয়ার জন্য। যদি উভয়ই "false" হয়, তাহলে তা ইনস্ট্যান্ট করা যাবে না।

android:enableOnBackInvokedCallback
এই পতাকা আপনাকে কার্যকলাপ স্তরে ভবিষ্যদ্বাণীমূলক সিস্টেম অ্যানিমেশন নির্বাচন করতে দেয়। এই আচরণটি বৃহৎ মাল্টি-অ্যাক্টিভিটি অ্যাপগুলিকে ভবিষ্যদ্বাণীমূলক ব্যাক জেসচারে স্থানান্তর করা আরও পরিচালনাযোগ্য করে তোলে।

android:enableOnBackInvokedCallback=false সেট করা হল অ্যাক্টিভিটি লেভেলে বা অ্যাপ লেভেলে ভবিষ্যদ্বাণীমূলক ব্যাক অ্যানিমেশন বন্ধ করে, যেখানে আপনি ট্যাগ সেট করেছেন তার উপর নির্ভর করে, এবং সিস্টেমকে OnBackInvokedCallback প্ল্যাটফর্ম API-এ কলগুলি উপেক্ষা করার নির্দেশ দেয়৷

android:excludeFromRecents

এই কার্যকলাপের দ্বারা শুরু করা টাস্কটি সাম্প্রতিক স্ক্রীন থেকে বাদ দেওয়া হয়েছে কিনা। অর্থাৎ, যখন এই অ্যাক্টিভিটি একটি নতুন টাস্কের রুট অ্যাক্টিভিটি হয়, তখন এই অ্যাট্রিবিউটটি নির্ধারণ করে যে টাস্কটি সাম্প্রতিক অ্যাপের তালিকায় উপস্থিত হবে কিনা। এটি "true" যদি টাস্কটি তালিকা থেকে বাদ দেওয়া হয়; "false" যদি এটি অন্তর্ভুক্ত করা হয়। ডিফল্ট মান হল "false"

android:exported

অন্যান্য অ্যাপ্লিকেশনের উপাদান দ্বারা কার্যকলাপ চালু করা যেতে পারে কিনা:

  • যদি "true" , তবে কার্যকলাপটি যেকোন অ্যাপে অ্যাক্সেসযোগ্য, এবং এটির সঠিক শ্রেণীর নাম দ্বারা লঞ্চযোগ্য।
  • "false" হলে, কার্যকলাপটি শুধুমাত্র একই অ্যাপ্লিকেশনের উপাদান, একই ব্যবহারকারী আইডি সহ অ্যাপ্লিকেশন, বা সুবিধাপ্রাপ্ত সিস্টেম উপাদানগুলির দ্বারা চালু করা যেতে পারে৷ কোন উদ্দেশ্য ফিল্টার না থাকলে এটি ডিফল্ট মান।

যদি আপনার অ্যাপের কোনো অ্যাক্টিভিটিতে ইনটেন্ট ফিল্টার থাকে, তাহলে অন্য অ্যাপগুলিকে এটি শুরু করতে দিতে এই উপাদানটিকে "true" হিসেবে সেট করুন। উদাহরণস্বরূপ, যদি অ্যাক্টিভিটি অ্যাপের প্রধান অ্যাক্টিভিটি হয় এবং এতে android.intent.category.LAUNCHER category অন্তর্ভুক্ত থাকে।

যদি এই উপাদানটি "false" তে সেট করা থাকে এবং একটি অ্যাপ ক্রিয়াকলাপ শুরু করার চেষ্টা করে, সিস্টেমটি একটি ActivityNotFoundException নিক্ষেপ করে।

এই বৈশিষ্ট্যটি অন্যান্য অ্যাপ্লিকেশনের সাথে একটি কার্যকলাপের এক্সপোজার সীমিত করার একমাত্র উপায় নয়৷ অনুমতিগুলি বাহ্যিক সত্তাগুলিকে সীমিত করতেও ব্যবহার করা হয় যা কার্যকলাপটি শুরু করতে পারে৷ permission বৈশিষ্ট্য দেখুন.

android:finishOnTaskLaunch
রুট ক্রিয়াকলাপ ব্যতীত কার্যকলাপের একটি বিদ্যমান দৃষ্টান্ত বন্ধ করা হয়েছে কিনা, যখন ব্যবহারকারী হোম স্ক্রিনে টাস্কটি বেছে নিয়ে তার টাস্ক পুনরায় চালু করে। এটি বন্ধ করা হলে এটি "true" এবং না হলে "false" । ডিফল্ট মান হল "false"

যদি এই বৈশিষ্ট্য এবং allowTaskReparenting উভয়ই "true" হয়, তবে এই বৈশিষ্ট্যটি অন্যটিকে ছাড়িয়ে যায়। কার্যকলাপের সম্বন্ধ উপেক্ষা করা হয়. কার্যকলাপ পুনরায় অভিভাবক করা হয় না, কিন্তু ধ্বংস.

FLAG_ACTIVITY_RESET_TASK_IF_NEEDED সেট করা না থাকলে এই বৈশিষ্ট্যটি উপেক্ষা করা হয়৷

android:hardwareAccelerated
এই ক্রিয়াকলাপের জন্য হার্ডওয়্যার-এক্সিলারেটেড রেন্ডারিং সক্ষম করা আছে কিনা। এটি সক্রিয় থাকলে "true" এবং না থাকলে "false" । ডিফল্ট মান হল "false"

অ্যান্ড্রয়েড 3.0 এবং উচ্চতর, একটি হার্ডওয়্যার-ত্বরিত OpenGL রেন্ডারার অনেক সাধারণ 2D গ্রাফিক্স ক্রিয়াকলাপগুলির জন্য কর্মক্ষমতা উন্নত করতে অ্যাপ্লিকেশনগুলিতে উপলব্ধ। যখন হার্ডওয়্যার-অ্যাক্সিলারেটেড রেন্ডারার সক্ষম করা হয়, তখন ক্যানভাস, পেইন্ট, এক্সফর্মোড, কালারফিল্টার, শেডার এবং ক্যামেরার বেশিরভাগ ক্রিয়াকলাপ ত্বরান্বিত হয়।

এর ফলে মসৃণ অ্যানিমেশন, মসৃণ স্ক্রোলিং, এবং সামগ্রিকভাবে উন্নত প্রতিক্রিয়াশীলতা দেখা যায়, এমনকি এমন অ্যাপ্লিকেশনের জন্যও যেগুলি স্পষ্টভাবে ফ্রেমওয়ার্কের OpenGL লাইব্রেরি ব্যবহার করে না। হার্ডওয়্যার ত্বরণ সক্ষম করার জন্য প্রয়োজনীয় বর্ধিত সংস্থানগুলির কারণে, আপনার অ্যাপটি আরও RAM ব্যবহার করে৷

সমস্ত OpenGL 2D অপারেশন ত্বরান্বিত হয় না। আপনি হার্ডওয়্যার-অ্যাক্সিলারেটেড রেন্ডারার সক্ষম করলে, আপনার অ্যাপ্লিকেশন ত্রুটি ছাড়াই রেন্ডারার ব্যবহার করতে পারে কিনা তা পরীক্ষা করুন।

android:icon

কার্যকলাপের প্রতিনিধিত্বকারী একটি আইকন। আইকনটি ব্যবহারকারীদের কাছে প্রদর্শিত হয় যখন অন-স্ক্রীনে কার্যকলাপের উপস্থাপনা প্রয়োজন হয়। উদাহরণ স্বরূপ, কাজ শুরু করে এমন কার্যকলাপের আইকনগুলি লঞ্চার উইন্ডোতে প্রদর্শিত হয়। আইকন প্রায়ই একটি লেবেল দ্বারা অনুষঙ্গী হয়; লেবেল সম্পর্কে তথ্যের জন্য, android:label বৈশিষ্ট্যটি দেখুন।

এই বৈশিষ্ট্যটি চিত্র সংজ্ঞা ধারণকারী একটি অঙ্কনযোগ্য সম্পদের একটি রেফারেন্স হিসাবে সেট করা হয়েছে। যদি এটি সেট করা না থাকে, তবে সম্পূর্ণরূপে অ্যাপ্লিকেশনটির জন্য নির্দিষ্ট আইকনটি পরিবর্তে ব্যবহার করা হয়৷ আরও তথ্যের জন্য, <application> উপাদানের icon বৈশিষ্ট্য দেখুন।

ক্রিয়াকলাপের আইকন, এখানে সেট করা হোক বা <application> উপাদান দ্বারা, এছাড়াও সমস্ত কার্যকলাপের অভিপ্রায় ফিল্টারের জন্য ডিফল্ট আইকন। আরও তথ্যের জন্য, <intent-filter> এলিমেন্টের icon অ্যাট্রিবিউট দেখুন।

android:immersive
বর্তমান কার্যকলাপের জন্য ইমারসিভ মোড সেটিং সেট করে। যদি এটি "true" হয়, তবে setImmersive() পদ্ধতি ব্যবহার করে রানটাইমে ইমারসিভ মোড পরিবর্তন হলেও ActivityInfo.flags সদস্যের সর্বদা তার FLAG_IMMERSIVE বিট সেট থাকে।
android:label

কার্যকলাপের জন্য একটি ব্যবহারকারী-পাঠযোগ্য লেবেল। ক্রিয়াকলাপটি ব্যবহারকারীর কাছে উপস্থাপন করা হলে লেবেলটি পর্দায় প্রদর্শিত হয়। এটি প্রায়ই কার্যকলাপ আইকন বরাবর প্রদর্শিত হয়. যদি এই অ্যাট্রিবিউট সেট করা না থাকে, তাহলে সম্পূর্ণরূপে অ্যাপ্লিকেশানের জন্য সেট করা লেবেল পরিবর্তে ব্যবহার করা হয়। <application> উপাদানের label বৈশিষ্ট্য দেখুন।

কার্যকলাপের লেবেল, এখানে সেট করা হোক বা <application> উপাদান দ্বারা, সমস্ত কার্যকলাপের অভিপ্রায় ফিল্টারের জন্য ডিফল্ট লেবেল। আরও তথ্যের জন্য, <intent-filter> এলিমেন্টের label অ্যাট্রিবিউট দেখুন।

লেবেলটি একটি স্ট্রিং রিসোর্সের রেফারেন্স হিসাবে সেট করা হয়েছে যাতে এটি ব্যবহারকারী ইন্টারফেসের অন্যান্য স্ট্রিংগুলির মতো স্থানীয়করণ করা যায়। যাইহোক, আপনি অ্যাপ্লিকেশনটি বিকাশ করার সময় সুবিধা হিসাবে, এটি একটি কাঁচা স্ট্রিং হিসাবেও সেট করা যেতে পারে।

android:launchMode

কিভাবে কার্যকলাপ চালু হয় তার জন্য একটি নির্দেশ. পাঁচটি মোড আছে, যেগুলি Intent অবজেক্টে অ্যাক্টিভিটি ফ্ল্যাগের ( FLAG_ACTIVITY_* ধ্রুবক) সাথে একত্রে কাজ করে তা নির্ধারণ করতে যখন অ্যাক্টিভিটি একটি অভিপ্রায় পরিচালনা করতে বলা হয় তখন কী ঘটে:

"standard"
"singleTop"
"singleTask"
"singleInstance"
"singleInstancePerTask"

ডিফল্ট মোড হল "standard"

নিম্নলিখিত সারণীতে দেখানো হয়েছে, মোডগুলি দুটি প্রধান গ্রুপে পড়ে, একদিকে "standard" এবং "singleTop" ক্রিয়াকলাপ সহ, এবং "singleTask" , "singleInstance" , এবং "singleInstancePerTask" কার্যকলাপগুলি অন্য দিকে। "standard" বা "singleTop" লঞ্চ মোড সহ একটি কার্যকলাপ একাধিকবার তাত্ক্ষণিক করা যেতে পারে৷

দৃষ্টান্তগুলি যে কোনও কাজের অন্তর্গত হতে পারে এবং কার্যকলাপের টাস্কের যে কোনও জায়গায় অবস্থিত হতে পারে। সাধারণত, তারা startActivity() নামক টাস্কে লঞ্চ করা হয়, যদি না Intent অবজেক্টে একটি FLAG_ACTIVITY_NEW_TASK নির্দেশনা থাকে, যে ক্ষেত্রে একটি ভিন্ন টাস্ক বেছে নেওয়া হয়। আরও তথ্যের জন্য, taskAffinity অ্যাট্রিবিউট দেখুন।

বিপরীতে, "singleTask" , "singleInstance" , এবং "singleInstancePerTask" ক্রিয়াকলাপগুলির বিভিন্ন আচরণ রয়েছে৷ "singleInstancePerTask" সবসময় অ্যাক্টিভিটি টাস্কের মূলে থাকে। এছাড়াও, ডিভাইসটি একবারে "singleInstance" কার্যকলাপের একটি মাত্র দৃষ্টান্ত ধারণ করতে পারে, যখন FLAG_ACTIVITY_MULTIPLE_TASK বা FLAG_ACTIVITY_NEW_DOCUMENT সেট করা থাকে তখন "singleInstancePerTask কার্যকলাপটি বিভিন্ন কাজে একাধিকবার ইনস্ট্যান্ট করা যেতে পারে৷

"singleTask" লঞ্চ মোডের সাথে একটি কার্যকলাপ "singleInstance" এবং "singleInstancePerTask" এর আচরণগুলিকে একত্রিত করে: কার্যকলাপটি একাধিকবার তাত্ক্ষণিক করা যেতে পারে এবং একই taskAffinity একটি টাস্কের যেকোনো জায়গায় অবস্থিত হতে পারে। কিন্তু ক্রিয়াকলাপ টাস্কের মূলে "singleTask" কার্যকলাপটি সনাক্ত করার জন্য ডিভাইসটি শুধুমাত্র একটি টাস্ক ধরে রাখতে পারে৷

"standard" এবং "singleTop" মোডগুলি একে অপরের থেকে একটি দিক থেকে পৃথক: প্রতিবার যখন একটি "standard" কার্যকলাপের জন্য একটি নতুন অভিপ্রায় থাকে, সেই অভিপ্রায়ে প্রতিক্রিয়া জানাতে ক্লাসের একটি নতুন উদাহরণ তৈরি করা হয়৷ প্রতিটি উদাহরণ একটি একক অভিপ্রায় পরিচালনা করে। একইভাবে, একটি নতুন অভিপ্রায় পরিচালনা করার জন্য একটি "singleTop" কার্যকলাপের একটি নতুন উদাহরণও তৈরি করা যেতে পারে।

যাইহোক, যদি টার্গেট টাস্কের স্ট্যাকের শীর্ষে অ্যাক্টিভিটির একটি বিদ্যমান দৃষ্টান্ত থাকে তবে সেই উদাহরণটি একটি onNewIntent() কলে নতুন অভিপ্রায় গ্রহণ করে। একটি নতুন উদাহরণ তৈরি করা হয় না. অন্যথায়—যদি "singleTop" অ্যাক্টিভিটির একটি বিদ্যমান দৃষ্টান্ত টার্গেট টাস্কে থাকে কিন্তু স্ট্যাকের শীর্ষে না থাকে, অথবা যদি এটি একটি স্ট্যাকের শীর্ষে থাকে তবে টার্গেট টাস্কে না থাকে - একটি নতুন উদাহরণ তৈরি করা হয় এবং পুশ করা হয় স্ট্যাকের উপর

একইভাবে, যদি ব্যবহারকারী বর্তমান স্ট্যাকের একটি কার্যকলাপ পর্যন্ত নেভিগেট করে , আচরণটি অভিভাবক কার্যকলাপের লঞ্চ মোড দ্বারা নির্ধারিত হয়। যদি অভিভাবক কার্যকলাপের লঞ্চ মোড singleTop থাকে (অথবা up অভিপ্রায় FLAG_ACTIVITY_CLEAR_TOP ) থাকে, তাহলে অভিভাবককে স্ট্যাকের শীর্ষে নিয়ে আসা হয় এবং এর অবস্থা সংরক্ষণ করা হয়৷

নেভিগেশন অভিপ্রায় অভিভাবক কার্যকলাপের onNewIntent() পদ্ধতি দ্বারা গৃহীত হয়। যদি অভিভাবক কার্যকলাপের লঞ্চ মোড standard থাকে, এবং up অভিপ্রায়ে FLAG_ACTIVITY_CLEAR_TOP না থাকে, তাহলে বর্তমান ক্রিয়াকলাপ এবং এর অভিভাবক উভয়ই স্ট্যাক থেকে পপ অফ করে, এবং নেভিগেশন অভিপ্রায় পাওয়ার জন্য অভিভাবক কার্যকলাপের একটি নতুন উদাহরণ তৈরি করা হয়৷

"singleInstance" মোডটি শুধুমাত্র একটি ক্ষেত্রে "singleTask" এবং "singleInstancePerTask" থেকে পৃথক: "singleTask" বা "singleInstancePerTask" লঞ্চ মোড সহ একটি কার্যকলাপ অন্যান্য ক্রিয়াকলাপগুলিকে, অগত্যা "standard" এবং "singleTop" কার্যকলাপের অংশ হতে দেয়। এর কাজ

একটি "singleInstance" কার্যকলাপ, অন্য দিকে, অন্য কোন ক্রিয়াকলাপকে তার কাজের অংশ হতে দেয় না। এটি টাস্কের একমাত্র কার্যকলাপ হতে হবে। যদি এটি অন্য একটি ক্রিয়াকলাপ শুরু করে, সেই কার্যকলাপটি একটি ভিন্ন টাস্কে বরাদ্দ করা হয়, যেন FLAG_ACTIVITY_NEW_TASK উদ্দেশ্য ছিল৷

কেস ব্যবহার করুন লঞ্চ মোড একাধিক দৃষ্টান্ত? মন্তব্য
বেশিরভাগ কার্যক্রমের জন্য সাধারণ লঞ্চ "standard" হ্যাঁ ডিফল্ট সিস্টেমটি সর্বদা টার্গেট টাস্কে কার্যকলাপের একটি নতুন দৃষ্টান্ত তৈরি করে এবং এর উদ্দেশ্যকে রুট করে।
"singleTop" শর্তসাপেক্ষে যদি টার্গেট টাস্কের শীর্ষে অ্যাক্টিভিটির একটি ইন্সট্যান্স ইতিমধ্যেই বিদ্যমান থাকে, তাহলে সিস্টেম ক্রিয়াকলাপের একটি নতুন উদাহরণ তৈরি করার পরিবর্তে তার onNewIntent() পদ্ধতিতে একটি কলের মাধ্যমে সেই ইন্সট্যান্সের উদ্দেশ্যকে রুট করে।
বিশেষায়িত লঞ্চ
(সাধারণ ব্যবহারের জন্য প্রস্তাবিত নয়)
"singleTask" শর্তসাপেক্ষে সিস্টেমটি একটি নতুন টাস্কের মূলে ক্রিয়াকলাপ তৈরি করে বা একই সখ্যতার সাথে একটি বিদ্যমান টাস্কে কার্যকলাপটি সনাক্ত করে। যদি অ্যাক্টিভিটির একটি ইন্সট্যান্স ইতিমধ্যেই বিদ্যমান থাকে এবং টাস্কের মূলে থাকে, তাহলে সিস্টেম নতুন একটি তৈরি করার পরিবর্তে তার onNewIntent() পদ্ধতিতে একটি কলের মাধ্যমে বিদ্যমান ইন্সট্যান্সের উদ্দেশ্যে রুট করে।
"singleInstance" না "singleTask" এর মতই, ব্যতীত যে সিস্টেমটি দৃষ্টান্ত ধারণ করা টাস্কে অন্য কোন ক্রিয়াকলাপ চালু করে না। কার্যকলাপ সবসময় তার টাস্ক একক এবং একমাত্র সদস্য.
"singleInstancePerTask" শর্তসাপেক্ষে অ্যাক্টিভিটি শুধুমাত্র টাস্কের রুট অ্যাক্টিভিটি হিসেবে চলতে পারে, প্রথম অ্যাক্টিভিটি যেটি টাস্ক তৈরি করেছে, এবং সেইজন্য একটি টাস্কে এই অ্যাক্টিভিটির একটি মাত্র উদাহরণ আছে। যাইহোক, কার্যকলাপটি বিভিন্ন কাজে একাধিকবার তাত্ক্ষণিক করা যেতে পারে।

পূর্ববর্তী সারণীতে দেখানো হয়েছে, "standard" হল ডিফল্ট মোড এবং বেশিরভাগ ধরনের কার্যকলাপের জন্য উপযুক্ত। "singleTop" অনেক ধরনের কার্যকলাপের জন্য একটি সাধারণ এবং দরকারী লঞ্চ মোড। অন্যান্য মোড, "singleTask" , "singleInstance" , এবং "singleInstancePerTask" , বেশিরভাগ অ্যাপ্লিকেশনের জন্য উপযুক্ত নয় ৷ তারা একটি ইন্টারঅ্যাকশন মডেল তৈরি করে যা ব্যবহারকারীদের কাছে অপরিচিত হতে পারে এবং বেশিরভাগ অন্যান্য অ্যাপ্লিকেশন থেকে খুব আলাদা।

আপনি যে লঞ্চ মোডটি বেছে নিন তা নির্বিশেষে, লঞ্চের সময় এবং ব্যাক বোতাম ব্যবহার করে অন্যান্য ক্রিয়াকলাপ এবং কাজগুলি থেকে এটিতে ফিরে যাওয়ার সময় কার্যকলাপের ব্যবহারযোগ্যতা পরীক্ষা করা নিশ্চিত করুন৷

লঞ্চ মোড এবং Intent ফ্ল্যাগের সাথে তাদের মিথস্ক্রিয়া সম্পর্কে আরও তথ্যের জন্য, টাস্ক এবং ব্যাক স্ট্যাক দেখুন।

android:lockTaskMode
ডিভাইসটি লক টাস্ক মোডে চলাকালীন সিস্টেমটি কীভাবে এই কার্যকলাপটি উপস্থাপন করে তা নির্ধারণ করে৷

অ্যান্ড্রয়েড লক টাস্ক মোড নামক একটি নিমজ্জিত, কিয়স্কের মতো ফ্যাশনে কাজগুলি চালাতে পারে৷ যখন সিস্টেমটি লক টাস্ক মোডে চলে, তখন ডিভাইস ব্যবহারকারীরা সাধারণত বিজ্ঞপ্তি দেখতে, অ-অনুমোদিত অ্যাপ অ্যাক্সেস করতে বা হোম স্ক্রিনে ফিরে যেতে পারে না, যদি না হোম অ্যাপটি অনুমোদিত হয়।

সিস্টেম লক টাস্ক মোডে থাকা অবস্থায় শুধুমাত্র ডিভাইস পলিসি কন্ট্রোলার (DPC) দ্বারা অনুমোদিত অ্যাপ্লিকেশানগুলি চলতে পারে৷ সিস্টেম এবং বিশেষ সুবিধাপ্রাপ্ত অ্যাপ , তবে, অনুমোদিত তালিকাভুক্ত না হয়ে লক টাস্ক মোডে চলতে পারে।

মান নিম্নোক্ত R.attr.lockTaskMode স্ট্রিং মানগুলির যেকোনো একটি হতে পারে:

মান বর্ণনা
"normal" ডিফল্ট মান। এটি ডিফল্ট মান। টাস্কগুলি লক টাস্ক মোডে লঞ্চ হয় না তবে startLockTask() কল করে সেখানে স্থাপন করা যেতে পারে।
"never"

টাস্কগুলি lockTask মোডে লঞ্চ হয় না এবং ডিভাইস ব্যবহারকারী সাম্প্রতিক স্ক্রীন থেকে এই কাজগুলি পিন করতে পারে না৷

দ্রষ্টব্য: এই মোড শুধুমাত্র সিস্টেম এবং বিশেষাধিকারপ্রাপ্ত অ্যাপ্লিকেশনের জন্য উপলব্ধ। এই মান সহ অ-সুবিধাপ্রাপ্ত অ্যাপগুলিকে normal হিসাবে বিবেচনা করা হয়৷

"if_whitelisted" যদি ডিপিসি এই প্যাকেজটিকে DevicePolicyManager.setLockTaskPackages() ব্যবহার করে অনুমোদন করে, তাহলে এই মোডটি always অভিন্ন, ব্যতীত এটি শেষ লক করা টাস্ক হলে শেষ করতে সক্ষম হওয়ার আগে কার্যকলাপটিকে stopLockTask() কল করতে হবে৷ যদি ডিপিসি এই প্যাকেজটিকে অনুমোদন না করে তাহলে এই মোডটি normal মতো।
"always"

এই ক্রিয়াকলাপের মূলে থাকা কার্যগুলি সর্বদা লক টাস্ক মোডে লঞ্চ হয়৷ এই টাস্কটি চালু করার সময় যদি সিস্টেমটি ইতিমধ্যেই লক টাস্ক মোডে থাকে, তাহলে বর্তমান টাস্কের উপরে নতুন টাস্ক চালু করা হয়। এই মোডে চালু করা টাস্ক finish() কল করে লক টাস্ক মোড থেকে বেরিয়ে আসতে পারে।

দ্রষ্টব্য: এই মোড শুধুমাত্র সিস্টেম এবং বিশেষাধিকারপ্রাপ্ত অ্যাপ্লিকেশনের জন্য উপলব্ধ। এই মান সহ অ-সুবিধাপ্রাপ্ত অ্যাপগুলিকে normal হিসাবে বিবেচনা করা হয়৷

এই বৈশিষ্ট্যটি API স্তর 23-এ চালু করা হয়েছিল।

android:maxRecents
সাম্প্রতিক স্ক্রিনে এই ক্রিয়াকলাপে রুট করা সর্বাধিক সংখ্যক কার্য। এন্ট্রির এই সংখ্যায় পৌঁছে গেলে, সিস্টেম সাম্প্রতিক স্ক্রীন থেকে সবচেয়ে কম-সাম্প্রতিক ব্যবহৃত উদাহরণ সরিয়ে দেয়। বৈধ মান হল 1 থেকে 50 পর্যন্ত পূর্ণসংখ্যা, অথবা কম মেমরির ডিভাইসে 1 থেকে 25 পর্যন্ত। শূন্য অবৈধ। ডিফল্ট মান হল 16।
android:maxAspectRatio

অ্যাক্টিভিটি সমর্থন করে সর্বাধিক আকৃতির অনুপাত। অ্যাপটি যদি একটি বৃহত্তর আকৃতির অনুপাত সহ একটি ডিভাইসে চলে, তাহলে সিস্টেমটি স্বয়ংক্রিয়ভাবে অ্যাপটিকে লেটারবক্স করে, স্ক্রিনের অংশগুলিকে অব্যবহৃত রেখে দেয় যাতে অ্যাপটি তার নির্দিষ্ট সর্বোচ্চ আকৃতির অনুপাতের সাথে চলতে পারে।

সর্বাধিক আকৃতির অনুপাতকে ডিভাইসের দীর্ঘ মাত্রার ভাগফলের দশমিক আকার হিসাবে প্রকাশ করা হয় যা এর সংক্ষিপ্ত মাত্রা দ্বারা ভাগ করা হয়। উদাহরণস্বরূপ, যদি সর্বাধিক অনুপাত 7:3 হয়, তাহলে এই বৈশিষ্ট্যটির মান 2.33 এ সেট করুন।

পরিধানযোগ্য নয় এমন ডিভাইসগুলিতে, এই বৈশিষ্ট্যের মান 1.33 বা তার বেশি হওয়া প্রয়োজন। পরিধানযোগ্য ডিভাইসে, এটি অবশ্যই 1.0 বা তার বেশি হতে হবে। অন্যথায়, সিস্টেম সেট মান উপেক্ষা করে।

দ্রষ্টব্য: এই অ্যাট্রিবিউটটি উপেক্ষা করা হয় যদি অ্যাক্টিভিটিটি resizeableActivity সত্যে সেট করা থাকে, যেহেতু এর মানে আপনার কার্যকলাপ যেকোনো আকারকে সমর্থন করে।

এই বৈশিষ্ট্য সম্পর্কে আরও তথ্যের জন্য, সর্বাধিক আকৃতির অনুপাত ঘোষণা করুন দেখুন।

android:multiprocess
যে উপাদানটি এটি শুরু করেছে তার প্রক্রিয়ার মধ্যে কার্যকলাপের একটি উদাহরণ চালু করা যেতে পারে কিনা। এটা হতে পারে "true" এবং না হলে "false" । ডিফল্ট মান হল "false"

সাধারণত, একটি ক্রিয়াকলাপের একটি নতুন দৃষ্টান্ত এটিকে সংজ্ঞায়িত করা অ্যাপ্লিকেশনটির প্রক্রিয়াতে চালু করা হয়, তাই কার্যকলাপের সমস্ত উদাহরণ একই প্রক্রিয়ায় চলে। যাইহোক, যদি এই পতাকাটি "true" তে সেট করা হয়, কার্যকলাপের দৃষ্টান্তগুলি একাধিক প্রক্রিয়ায় চলতে পারে, যেখানেই সেগুলি ব্যবহার করা হয় সেখানে সিস্টেমকে দৃষ্টান্ত তৈরি করতে দেয়, অনুমতি দেওয়া হয় - এমন কিছু যা প্রায় কখনই প্রয়োজনীয় বা পছন্দনীয় নয়।

android:name
কার্যকলাপ বাস্তবায়নকারী শ্রেণীর নাম, Activity একটি উপশ্রেণী। অ্যাট্রিবিউটের মান সাধারণত একটি সম্পূর্ণ যোগ্য শ্রেণীর নাম, যেমন, "com.example.project.ExtracurricularActivity" । যাইহোক, শর্টহ্যান্ড হিসাবে, নামের প্রথম অক্ষরটি যদি একটি পিরিয়ড হয়, যেমন ".ExtracurricularActivity" , এটি build.gradle ফাইলে নির্দিষ্ট নামস্থানে যুক্ত করা হয়।

একবার আপনি আপনার অ্যাপ্লিকেশন প্রকাশ করলে, এই নামটি পরিবর্তন করবেন না , যদি না আপনি android:exported ="false" সেট করেন। কোন ডিফল্ট নেই. নাম উল্লেখ করতে হবে।

android:noHistory
ক্রিয়াকলাপটি অ্যাক্টিভিটি স্ট্যাক থেকে সরানো হয়েছে এবং শেষ হয়েছে কিনা, এটির finish() পদ্ধতিতে কল করে, যখন ব্যবহারকারী এটি থেকে দূরে যান এবং এটি আর পর্দায় দৃশ্যমান হয় না। এটি শেষ হলে এটি "true" এবং না হলে "false" । ডিফল্ট মান হল "false"

"true" এর একটি মান মানে হল যে কার্যকলাপটি একটি ঐতিহাসিক ট্রেস ছেড়ে যায় না। এটি টাস্কের জন্য অ্যাক্টিভিটি স্ট্যাকে থাকে না, তাই ব্যবহারকারী এটিতে ফিরে যেতে সক্ষম হয় না। এই ক্ষেত্রে, onActivityResult() কখনই কল করা হয় না যদি আপনি এই কার্যকলাপের ফলাফলের জন্য অন্য একটি কার্যকলাপ শুরু করেন।

এই বৈশিষ্ট্যটি API স্তর 3-এ চালু করা হয়েছিল।

android:parentActivityName
কার্যকলাপের যৌক্তিক অভিভাবকের ক্লাসের নাম। এখানে নামটি অবশ্যই সংশ্লিষ্ট <activity> উপাদানের android:name বৈশিষ্ট্যের সাথে প্রদত্ত শ্রেণীর নামের সাথে মিলবে।

ব্যবহারকারী যখন অ্যাকশন বারে আপ বোতামে ট্যাপ করবে তখন কোন কার্যকলাপ শুরু করতে হবে তা নির্ধারণ করতে সিস্টেমটি এই বৈশিষ্ট্যটি পড়ে। সিস্টেমটি TaskStackBuilder এর সাথে কার্যকলাপের একটি ব্যাক স্ট্যাক সংশ্লেষ করতে এই তথ্যটি ব্যবহার করতে পারে।

API লেভেল 4 - 16 সমর্থন করতে, আপনি একটি <meta-data> উপাদানের সাথে প্যারেন্ট অ্যাক্টিভিটিও ঘোষণা করতে পারেন যা "android.support.PARENT_ACTIVITY" এর জন্য একটি মান নির্দিষ্ট করে:

<activity
    android:name="com.example.app.ChildActivity"
    android:label="@string/title_child_activity"
    android:parentActivityName="com.example.app.MainActivity" >
    <!-- Parent activity meta-data to support API level 4+ -->
    <meta-data
        android:name="android.support.PARENT_ACTIVITY"
        android:value="com.example.app.MainActivity" />
</activity>

আপ নেভিগেশন সমর্থন করার জন্য অভিভাবক কার্যকলাপ ঘোষণা সম্পর্কে আরও তথ্যের জন্য, পড়ুন প্রোভাইডিং আপ নেভিগেশন

এই বৈশিষ্ট্যটি API স্তর 16-এ চালু করা হয়েছিল।

android:persistableMode

ডিভাইস রিস্টার্ট জুড়ে একটি ধারণ করা টাস্কের মধ্যে একটি কার্যকলাপের একটি উদাহরণ কীভাবে সংরক্ষিত হয় তা সংজ্ঞায়িত করে।

যদি কোনো টাস্কের রুট অ্যাট্রিবিউট এই অ্যাট্রিবিউটের মানকে persistRootOnly তে সেট করে, তাহলে শুধুমাত্র রুট অ্যাক্টিভিটি সংরক্ষিত থাকে। অন্যথায়, টাস্কের ব্যাক স্ট্যাকের উপরে যে কার্যকলাপগুলি পরীক্ষা করা হয়; এই অ্যাট্রিবিউটের মানকে persistAcrossReboots জন্য এই অ্যাট্রিবিউটের মান সেট করে এমন যেকোনো কার্যকলাপ সংরক্ষণ করা হয়।

আপনি যদি এই বৈশিষ্ট্যটি ব্যবহার করেন তবে আপনাকে অবশ্যই এর মান নিম্নলিখিতগুলির মধ্যে একটিতে সেট করতে হবে:

মান বর্ণনা
persistRootOnly

ডিফল্ট মান। সিস্টেম রিস্টার্ট হলে, অ্যাক্টিভিটি টাস্ক সংরক্ষণ করা হয়, কিন্তু শুধুমাত্র রুট অ্যাক্টিভিটি চালু করার উদ্দেশ্য ব্যবহার করা হয়।

যখন আপনার অ্যাপের লঞ্চের উদ্দেশ্য আপনার অ্যাপের রুট অ্যাক্টিভিটি লোড করে, তখন অ্যাক্টিভিটি একটি PersistableBundle অবজেক্ট পায় না। অতএব, একটি ডিভাইস রিস্টার্ট জুড়ে আপনার অ্যাপের রুট কার্যকলাপের অবস্থা সংরক্ষণ করতে onSaveInstanceState() ব্যবহার করবেন না।

দ্রষ্টব্য: এই বৈশিষ্ট্যের মানটি আপনার অ্যাপের আচরণকে প্রভাবিত করে শুধুমাত্র যদি এটি আপনার অ্যাপের রুট কার্যকলাপে সেট করা থাকে।

persistAcrossReboots

এই ক্রিয়াকলাপের অবস্থা সংরক্ষণ করা হয়, প্রতিটি কার্যকলাপের অবস্থার সাথে ব্যাক স্ট্যাকের উপরে যার নিজস্ব persistableMode বৈশিষ্ট্যটি persistAcrossReboots এ সেট করা আছে। যদি কোনো অ্যাক্টিভিটির একটি persistableMode অ্যাট্রিবিউট না থাকে যা persistAcrossReboots এ সেট করা থাকে, অথবা যদি এটি Intent.FLAG_ACTIVITY_NEW_DOCUMENT পতাকা ব্যবহার করে চালু করা হয়, তাহলে সেই অ্যাক্টিভিটি, ব্যাক স্ট্যাকের উপরের সমস্ত ক্রিয়াকলাপ সহ, সংরক্ষিত হয় না৷

যখন একটি উদ্দেশ্য একটি ক্রিয়াকলাপ লোড করে যার persistableMode বৈশিষ্ট্যটি আপনার অ্যাপে persistAcrossReboots হিসাবে সেট করা থাকে, কার্যকলাপটি তার onCreate() পদ্ধতিতে একটি PersistableBundle অবজেক্ট পায়। অতএব, আপনি onSaveInstanceState() ব্যবহার করতে পারেন একটি ডিভাইস জুড়ে একটি কার্যকলাপের অবস্থা সংরক্ষণ করতে যতক্ষণ না এটির persistableMode বৈশিষ্ট্যটি persistAcrossReboots তে সেট করা থাকে।

দ্রষ্টব্য: এই অ্যাট্রিবিউট মানটি আপনার অ্যাপের আচরণকে প্রভাবিত করে এমনকি যদি এটি আপনার অ্যাপের রুট অ্যাক্টিভিটি ছাড়া অন্য কোনো অ্যাক্টিভিটিতে সেট করা থাকে।

persistNever

কার্যকলাপের অবস্থা সংরক্ষিত হয় না.

দ্রষ্টব্য: এই বৈশিষ্ট্যের মানটি আপনার অ্যাপের আচরণকে প্রভাবিত করে শুধুমাত্র যদি এটি আপনার অ্যাপের রুট কার্যকলাপে সেট করা থাকে।

এই বৈশিষ্ট্যটি API স্তর 21-এ চালু করা হয়েছিল।

android:permission
একটি অনুমতির নাম যা ক্লায়েন্টদের অবশ্যই কার্যকলাপ চালু করতে হবে বা অন্যথায় এটি একটি অভিপ্রায়ে প্রতিক্রিয়া জানাতে হবে। startActivity() বা startActivityForResult() এর একজন কলারকে নির্দিষ্ট অনুমতি না দেওয়া হলে, তার উদ্দেশ্য কার্যকলাপে পৌঁছে দেওয়া হয় না।

এই অ্যাট্রিবিউট সেট না থাকলে, <application> এলিমেন্টের permission অ্যাট্রিবিউট দ্বারা সেট করা অনুমতি কার্যকলাপের জন্য প্রযোজ্য। যদি কোনো অ্যাট্রিবিউট সেট করা না থাকে, তাহলে অ্যাক্টিভিটি কোনো অনুমতি দ্বারা সুরক্ষিত হয় না।

অনুমতি সম্পর্কে আরও তথ্যের জন্য, অ্যাপ ম্যানিফেস্ট ওভারভিউ এবং নিরাপত্তা টিপসের অনুমতি বিভাগটি দেখুন।

android:process

যে প্রক্রিয়ায় কার্যকলাপ চলে তার নাম। সাধারণত, একটি অ্যাপ্লিকেশনের সমস্ত উপাদান অ্যাপ্লিকেশনের জন্য তৈরি একটি ডিফল্ট প্রক্রিয়া নামে চালিত হয় এবং আপনাকে এই বৈশিষ্ট্যটি ব্যবহার করতে হবে না। কিন্তু যদি প্রয়োজন হয়, আপনি এই বৈশিষ্ট্যের সাথে ডিফল্ট প্রক্রিয়ার নাম ওভাররাইড করতে পারেন, আপনাকে একাধিক প্রক্রিয়া জুড়ে আপনার অ্যাপের উপাদানগুলি ছড়িয়ে দিতে দেয়।

যদি এই অ্যাট্রিবিউটের জন্য বরাদ্দ করা নামটি একটি কোলন ( : ) দিয়ে শুরু হয়, একটি নতুন প্রক্রিয়া, অ্যাপ্লিকেশনের জন্য ব্যক্তিগত, যখন এটি প্রয়োজন হয় তখন তৈরি করা হয় এবং সেই প্রক্রিয়ায় কার্যকলাপটি চলে।

যদি প্রক্রিয়ার নামটি একটি ছোট হাতের অক্ষর দিয়ে শুরু হয়, তবে কার্যকলাপটি সেই নামের একটি বিশ্বব্যাপী প্রক্রিয়ায় চলে, যদি এটি করার অনুমতি থাকে। এটি বিভিন্ন অ্যাপ্লিকেশনের উপাদানগুলিকে একটি প্রক্রিয়া ভাগ করতে দেয়, সম্পদের ব্যবহার হ্রাস করে।

<application> উপাদানের process বৈশিষ্ট্য সমস্ত উপাদানের জন্য একটি ভিন্ন ডিফল্ট প্রক্রিয়া নাম সেট করতে পারে।

android:relinquishTaskIdentity

অ্যাক্টিভিটি তার টাস্ক আইডেন্টিফায়ারকে টাস্ক স্ট্যাকের উপরে থাকা অ্যাক্টিভিটি থেকে ত্যাগ করে কিনা। একটি টাস্ক যার রুট অ্যাট্রিবিউটটি এই অ্যাট্রিবিউটটি "true" তে সেট করা আছে তা টাস্কের পরবর্তী অ্যাক্টিভিটির সাথে বেস Intent প্রতিস্থাপন করে।

যদি পরবর্তী অ্যাট্রিবিউটে এই অ্যাট্রিবিউটটি "true" সেট করা থাকে তাহলে এটি একই টাস্কে চালু করা যেকোনো অ্যাক্টিভিটির জন্য বেস Intent প্রদান করে। এটি প্রতিটি ক্রিয়াকলাপের জন্য চলতে থাকে যতক্ষণ না এমন একটি কার্যকলাপের সম্মুখীন না হয় যেখানে এই বৈশিষ্ট্যটি "false" এ সেট করা আছে। ডিফল্ট মান হল "false"

"true" তে সেট করা এই বৈশিষ্ট্যটি সাম্প্রতিক স্ক্রিনে লেবেল, রঙ এবং আইকনগুলি পরিবর্তন করতে ActivityManager.TaskDescription এর কার্যকলাপ ব্যবহারের অনুমতি দেয়।

android:requireContentUriPermissionFromCaller

বিষয়বস্তু URI পাস করার সময় এই কার্যকলাপ চালু করার জন্য প্রয়োজনীয় অনুমতিগুলি নির্দিষ্ট করে৷ ডিফল্ট মান none , যার অর্থ কোন নির্দিষ্ট অনুমতির প্রয়োজন নেই। এই বৈশিষ্ট্যটি সেট করা ইনভোকারের অনুমতিগুলির উপর ভিত্তি করে ক্রিয়াকলাপের অনুরোধকে সীমাবদ্ধ করে। যদি ইনভোকারের প্রয়োজনীয় অনুমতি না থাকে তবে ক্রিয়াকলাপ শুরুটি কোনও SecurityException মাধ্যমে অস্বীকার করা হবে।

নোট করুন যে প্রয়োগগুলি Intent.getData() , Intent.EXTRA_STREAM , এবং Intent.getClipData() এর ভিতরে কন্টেন্ট ইউআরআইগুলির জন্য কাজ করে।

'\\;' ব্যবহার করে স্ট্রিং মান হতে পারে ইউনিকোড চরিত্রের জন্য '\\ n' বা '\\ uxxxx' এর মতো চরিত্রগুলি থেকে বাঁচতে;

নিম্নলিখিত ধ্রুবক মানগুলির মধ্যে একটি হতে হবে।

ধ্রুবক মান বর্ণনা
কোনটি 0 ডিফল্ট, কোনও নির্দিষ্ট অনুমতি প্রয়োজন হয় না।
পড়া 1 ইনভোকারকে পাস করা সামগ্রী ইউআরআইগুলিতে অ্যাক্সেস পড়তে প্রয়োগ করে।
রিড্যান্ড রাইট 4 ইনভোকারকে পাস করা সামগ্রী ইউআরআইগুলিতে পড়তে এবং লিখতে উভয়ই প্রয়োগ করতে প্রয়োগ করে।
রিডার রাইট 3 ইনভোকারকে পাস করা সামগ্রী ইউআরআইগুলিতে অ্যাক্সেস পড়তে বা লিখতে প্রয়োগ করে।
লিখুন 2 ইনভোকারকে পাস করা সামগ্রী ইউআরআইগুলিতে লেখার অ্যাক্সেস পেতে প্রয়োগ করে।
android:resizeableActivity

অ্যাপটি মাল্টি-উইন্ডো মোড সমর্থন করে কিনা তা নির্দিষ্ট করে৷ আপনি এই বৈশিষ্ট্যটি <activity> বা <application> উপাদানে সেট করতে পারেন।

আপনি যদি এই বৈশিষ্ট্যটি "true" তে সেট করেন, ব্যবহারকারী স্প্লিট-স্ক্রিন এবং ফ্রি-ফর্ম মোডে কার্যকলাপ চালু করতে পারেন। আপনি যদি অ্যাট্রিবিউটটিকে "false" তে সেট করেন, তাহলে অ্যাপটি একাধিক-উইন্ডো পরিবেশের জন্য পরীক্ষা বা অপ্টিমাইজ করা যাবে না। সিস্টেম এখনও সামঞ্জস্য মোড প্রয়োগের সাথে একাধিক-উইন্ডো মোডে কার্যকলাপ রাখতে পারে।

"false" এ এই বৈশিষ্ট্যটি সেট করা গ্যারান্টি দেয় না যে স্ক্রিনে দৃশ্যমান মাল্টি-উইন্ডো মোডে অন্য কোনও অ্যাপ্লিকেশন নেই, যেমন চিত্র-ইন-চিত্র বা অন্য প্রদর্শনগুলিতে। অতএব, এই পতাকা সেট করার অর্থ এই নয় যে আপনার অ্যাপের একচেটিয়া সম্পদ অ্যাক্সেস আছে।

যদি আপনার অ্যাপ্লিকেশনটি এপিআই স্তর 24 বা উচ্চতর লক্ষ্য করে এবং আপনি এই বৈশিষ্ট্যের জন্য কোনও মান নির্দিষ্ট না করেন, তবে বৈশিষ্ট্যের মানটি "true" তে ডিফল্ট হয়।

যদি আপনার অ্যাপ এপিআই লেভেল 31 বা তার বেশি টার্গেট করে, তাহলে এই অ্যাট্রিবিউটটি ছোট এবং বড় স্ক্রিনে ভিন্নভাবে কাজ করে:

  • বড় স্ক্রীন (sw >= 600dp): সমস্ত অ্যাপ মাল্টি-উইন্ডো মোড সমর্থন করে। অ্যাট্রিবিউটটি নির্দেশ করে যে একটি অ্যাপের আকার পরিবর্তন করা যাবে কিনা, অ্যাপটি মাল্টি-উইন্ডো মোড সমর্থন করে কিনা তা নয়। resizeableActivity="false" হলে, ডিসপ্লে ডাইমেনশনের সাথে সামঞ্জস্য করার জন্য অ্যাপটিকে সামঞ্জস্যপূর্ণ মোডে রাখা হয়।
  • ছোট স্ক্রিনগুলি (এসডাব্লু <600 ডিপি): যদি resizeableActivity="true" এবং ক্রিয়াকলাপের সর্বনিম্ন প্রস্থ এবং ন্যূনতম উচ্চতা মাল্টি-উইন্ডো প্রয়োজনীয়তার মধ্যে থাকে তবে অ্যাপ্লিকেশনটি মাল্টি-উইন্ডো মোডকে সমর্থন করে। resizeableActivity="false" হলে, অ্যাপ্লিকেশানটি ন্যূনতম প্রস্থ এবং উচ্চতা নির্বিশেষে একাধিক-উইন্ডো মোড সমর্থন করে না৷

দ্রষ্টব্য: ডিভাইস নির্মাতারা API স্তর 31 আচরণকে ওভাররাইড করতে পারে।

এই বৈশিষ্ট্যটি API স্তর 24 এ যোগ করা হয়েছে।

দ্রষ্টব্য: একটি টাস্কের রুট অ্যাক্টিভিটি মান টাস্কে চালু করা সমস্ত অতিরিক্ত অ্যাক্টিভিটিগুলিতে প্রয়োগ করা হয়। অর্থাৎ, যদি কোনো টাস্কের রুট অ্যাক্টিভিটি রিসাইজ করা যায়, তাহলে সিস্টেম টাস্কের অন্য সব অ্যাক্টিভিটিকে রিসাইজযোগ্য হিসেবে বিবেচনা করে। যদি মূলের ক্রিয়াকলাপটি পুনরায় আকারযোগ্য না হয় তবে টাস্কের অন্যান্য ক্রিয়াকলাপগুলি পুনরায় চিত্রিত করা যায় না।

android:screenOrientation

ক্রিয়াকলাপের অনুরোধ করা ওরিয়েন্টেশন।

যখন কোনও ক্রিয়াকলাপ পুরো স্ক্রিনটি পূরণ করে, অনুরোধ করা ওরিয়েন্টেশনটি অনুরোধ করা মানটির সাথে মেলে সেই স্ক্রিনে ওরিয়েন্টেশন পরিবর্তন করার পরামর্শ হিসাবে কাজ করে। এর ফলে একটি ওরিয়েন্টেশন হতে পারে যা স্থানটিতে স্ক্রিনের শারীরিক ওরিয়েন্টেশন থেকে পৃথক হয়, ব্যবহারকারীকে অ্যাপ্লিকেশনটি ব্যবহার চালিয়ে যাওয়ার জন্য ডিভাইসটি ঘোরানো প্রয়োজন। অ্যান্ড্রয়েড 12 (এপিআই স্তর 31) এবং উচ্চতর, ডিভাইস নির্মাতারা এই পরামর্শটিকে উপেক্ষা করতে পৃথক ডিভাইস স্ক্রিনগুলি (যেমন একটি ভাঁজযোগ্য ট্যাবলেট আকারের স্ক্রিন) কনফিগার করতে পারে এবং পরিবর্তে কোনও ক্রিয়াকলাপকে ব্যবহারকারীর পছন্দসই ওরিয়েন্টেশনের মধ্যে একটি ক্রিয়াকলাপকে লেটারবক্সে রাখতে বাধ্য করতে বাধ্য করতে পারে ডিভাইস এটি ক্রিয়াকলাপের ওরিয়েন্টেশনটির সাথে মেলে ব্যবহারকারীকে শারীরিকভাবে তাদের ডিভাইসটি ঘোরানোর জন্য ব্যবহার না করেই মেলে।

মাল্টি-উইন্ডো মোডে, অনুরোধ করা ওরিয়েন্টেশন সামগ্রিক ওরিয়েন্টেশনের জন্য পরামর্শ হিসাবে কাজ করে না। যদি ক্রিয়াকলাপটি লেটারবক্স করা হয় তবে অনুরোধ করা ওরিয়েন্টেশনটি ক্রিয়াকলাপের জন্য প্রয়োগ করা লেটারবক্সিংকে প্রভাবিত করে।

মান নিম্নলিখিত স্ট্রিংগুলির যে কোনও একটি হতে পারে:

"unspecified" ডিফল্ট মান। সিস্টেম ওরিয়েন্টেশন চয়ন করে। এটি যে নীতিটি ব্যবহার করে এবং তাই নির্দিষ্ট প্রসঙ্গে করা পছন্দগুলি ডিভাইসে ডিভাইসে পৃথক হতে পারে।
"behind" ক্রিয়াকলাপের স্ট্যাকের সাথে সাথে এর নীচে থাকা ক্রিয়াকলাপের মতো একই ওরিয়েন্টেশন।
"landscape" ল্যান্ডস্কেপ ওরিয়েন্টেশন (প্রদর্শনটি এটি লম্বা হওয়ার চেয়ে প্রশস্ত)।
"portrait" প্রতিকৃতি ওরিয়েন্টেশন (প্রদর্শনটি প্রশস্তের চেয়ে লম্বা)।
"reverseLandscape" সাধারণ ল্যান্ডস্কেপ থেকে বিপরীত দিকে ল্যান্ডস্কেপ ওরিয়েন্টেশন। এপিআই স্তর 9 এ যুক্ত হয়েছে।
"reversePortrait" সাধারণ প্রতিকৃতি থেকে বিপরীত দিকে প্রতিকৃতি ওরিয়েন্টেশন। এপিআই স্তর 9 এ যুক্ত হয়েছে।
"sensorLandscape" ল্যান্ডস্কেপ ওরিয়েন্টেশন, তবে ডিভাইস সেন্সরের উপর ভিত্তি করে স্বাভাবিক বা বিপরীত ল্যান্ডস্কেপ হতে পারে। সেন্সরটি সেন্সর-ভিত্তিক ঘূর্ণন লক করে থাকলেও সেন্সরটি ব্যবহৃত হয়। এপিআই স্তর 9 এ যুক্ত হয়েছে।
"sensorPortrait" প্রতিকৃতি ওরিয়েন্টেশন, তবে ডিভাইস সেন্সরের উপর ভিত্তি করে স্বাভাবিক বা বিপরীত প্রতিকৃতি হতে পারে। সেন্সরটি সেন্সর-ভিত্তিক ঘূর্ণন লক করে থাকলেও সেন্সরটি ব্যবহৃত হয়। তবে, ডিভাইস কনফিগারেশনের উপর নির্ভর করে উল্টো-ডাউন ঘূর্ণন অনুমোদিত হতে পারে না। এপিআই স্তর 9 এ যুক্ত হয়েছে।
"userLandscape" ল্যান্ডস্কেপ ওরিয়েন্টেশন, তবে ডিভাইস সেন্সর এবং ব্যবহারকারীর পছন্দের উপর ভিত্তি করে স্বাভাবিক বা বিপরীত ল্যান্ডস্কেপ হতে পারে। এপিআই স্তর 18 এ যুক্ত হয়েছে।
"userPortrait" প্রতিকৃতি ওরিয়েন্টেশন, তবে ডিভাইস সেন্সর এবং ব্যবহারকারীর পছন্দের উপর ভিত্তি করে স্বাভাবিক বা বিপরীত প্রতিকৃতি হতে পারে। তবে, ডিভাইস কনফিগারেশনের উপর নির্ভর করে উল্টো-ডাউন ঘূর্ণন অনুমোদিত হতে পারে না। এপিআই স্তর 18 এ যুক্ত হয়েছে।
"sensor" ডিভাইস ওরিয়েন্টেশন সেন্সর ওরিয়েন্টেশন নির্ধারণ করে। ডিসপ্লেটির ওরিয়েন্টেশন নির্ভর করে যে ব্যবহারকারী কীভাবে ডিভাইসটি ধরে রাখছে তার উপর। ব্যবহারকারী যখন ডিভাইসটি ঘোরান তখন এটি পরিবর্তিত হয়। কিছু ডিভাইসগুলি যদিও ডিফল্টরূপে চারটি সম্ভাব্য ওরিয়েন্টেশনে ঘোরান না। চারটি ওরিয়েন্টেশন ব্যবহার করতে, "fullSensor" ব্যবহার করুন। সেন্সরটি সেন্সর-ভিত্তিক ঘূর্ণন লক করে থাকলেও সেন্সরটি ব্যবহৃত হয়।
"fullSensor" ডিভাইস ওরিয়েন্টেশন সেন্সর চারটি ওরিয়েন্টেশনের যে কোনওটির জন্য ওরিয়েন্টেশন নির্ধারণ করে। এটি "sensor" এর অনুরূপ, এটি ব্যতীত ডিভাইসটি সাধারণত যা সমর্থন করে তা নির্বিশেষে চারটি সম্ভাব্য স্ক্রিন ওরিয়েন্টেশনের কোনওটির অনুমতি দেয়। উদাহরণস্বরূপ, কিছু ডিভাইস সাধারণত বিপরীত প্রতিকৃতি বা বিপরীত ল্যান্ডস্কেপ ব্যবহার করে না, তবে এটি সেই দিকনির্দেশগুলি সক্ষম করে। এপিআই স্তর 9 এ যুক্ত হয়েছে।
"nosensor" ওরিয়েন্টেশনটি কোনও শারীরিক ওরিয়েন্টেশন সেন্সরের উল্লেখ ছাড়াই নির্ধারিত হয়। সেন্সরটিকে উপেক্ষা করা হয়, সুতরাং ব্যবহারকারী কীভাবে ডিভাইসটি সরিয়ে দেয় তার উপর ভিত্তি করে প্রদর্শনটি ঘোরায় না।
"user" ব্যবহারকারীর বর্তমান পছন্দসই ওরিয়েন্টেশন।
"fullUser" যদি ব্যবহারকারী সেন্সর-ভিত্তিক ঘূর্ণনটি লক করে রাখে তবে এটি user মতো একই আচরণ করে, অন্যথায় এটি fullSensor মতো একই আচরণ করে এবং চারটি সম্ভাব্য স্ক্রিন ওরিয়েন্টেশনের কোনওটির অনুমতি দেয়। এপিআই স্তর 18 এ যুক্ত হয়েছে।
"locked" তার বর্তমান ঘূর্ণনের দিকে ওরিয়েন্টেশনটি লক করে, যাই হোক না কেন। এপিআই স্তর 18 এ যুক্ত হয়েছে।

দ্রষ্টব্য: আপনি যখন ল্যান্ডস্কেপ বা প্রতিকৃতি মানগুলির একটি ঘোষণা করেন, তখন ক্রিয়াকলাপটি চালিত হয় এমন ওরিয়েন্টেশনের জন্য এটি একটি কঠিন প্রয়োজনীয়তা হিসাবে বিবেচিত হয়। আপনি যে মানটি ঘোষণা করেন তা গুগল প্লে এর মতো পরিষেবাদি দ্বারা ফিল্টারিং সক্ষম করে, তাই আপনার অ্যাপ্লিকেশনটি কেবলমাত্র ডিভাইসগুলিতে উপলব্ধ যা আপনার ক্রিয়াকলাপগুলির দ্বারা প্রয়োজনীয় ওরিয়েন্টেশনকে সমর্থন করে। উদাহরণস্বরূপ, আপনি যদি "landscape" , "reverseLandscape" , বা "sensorLandscape" ঘোষণা করেন তবে আপনার অ্যাপ্লিকেশনটি কেবল ল্যান্ডস্কেপ ওরিয়েন্টেশনকে সমর্থন করে এমন ডিভাইসগুলিতে উপলব্ধ।

এছাড়াও স্পষ্টভাবে ঘোষণা করুন যে আপনার অ্যাপ্লিকেশনটির জন্য <uses-feature> > উপাদান যেমন <uses-feature android:name="android.hardware.screen.portrait"/> এর মতো প্রতিকৃতি বা ল্যান্ডস্কেপ ওরিয়েন্টেশন প্রয়োজন। এটি গুগল প্লে এবং এটি সমর্থন করে এমন অন্যান্য পরিষেবাদি দ্বারা সরবরাহিত একটি ফিল্টারিং আচরণ এবং প্ল্যাটফর্ম নিজেই নিয়ন্ত্রণ করে না যখন কোনও ডিভাইস কেবল নির্দিষ্ট নির্দিষ্টকরণকে সমর্থন করে তখন আপনার অ্যাপটি ইনস্টল করতে পারে কিনা।

android:showForAllUsers

ক্রিয়াকলাপটি চালু করা ব্যবহারকারীর চেয়ে ডিভাইসের বর্তমান ব্যবহারকারী যখন আলাদা হয় তখন ক্রিয়াকলাপটি প্রদর্শিত হয় কিনা। আপনি এই বৈশিষ্ট্যটিকে "true" বা "false" এর মতো একটি আক্ষরিক মানের সাথে সেট করতে পারেন, বা আপনি বুলিয়ান মান ধারণ করে এমন কোনও সংস্থান বা থিম বৈশিষ্ট্যে বৈশিষ্ট্যটি সেট করতে পারেন।

এই বৈশিষ্ট্যটি API স্তর 23 এ যোগ করা হয়েছে।

android:stateNotNeeded
কার্যকলাপটি সমাপ্ত করা যায় এবং সফলভাবে তার রাষ্ট্রটি সংরক্ষণ না করে পুনরায় চালু করা যায় কিনা। এটি "true" যদি এটির পূর্ববর্তী অবস্থার উল্লেখ ছাড়াই পুনরায় চালু করা যায় এবং যদি এর পূর্ববর্তী অবস্থার প্রয়োজন হয় তবে "false" । ডিফল্ট মান হল "false"

সাধারণত, কোনও ক্রিয়াকলাপ সাময়িকভাবে সংস্থানগুলি সংরক্ষণের জন্য বন্ধ হওয়ার আগে, এর onSaveInstanceState() পদ্ধতি বলা হয়। এই পদ্ধতিটি একটি Bundle অবজেক্টে ক্রিয়াকলাপের বর্তমান অবস্থা সংরক্ষণ করে, যা ক্রিয়াকলাপটি পুনরায় চালু হওয়ার পরে onCreate() এ প্রেরণ করা হয়। যদি এই বৈশিষ্ট্যটি "true" তে সেট করা থাকে তবে onSaveInstanceState() বলা নাও হতে পারে এবং onCreate() Bundle পরিবর্তে null পাস করা হয়, যেমনটি যখন প্রথমবারের মতো ক্রিয়াকলাপ শুরু হয়।

একটি "true" সেটিংয়ের অর্থ হ'ল ক্রিয়াকলাপটি ধরে রাখা রাষ্ট্র ছাড়াই পুনরায় চালু করা যেতে পারে। উদাহরণস্বরূপ, হোম স্ক্রিনটি প্রদর্শন করে এমন ক্রিয়াকলাপটি এই সেটিংটি ব্যবহার করে তা নিশ্চিত করতে যে এটি কোনও কারণে ক্র্যাশ হয়ে গেলে এটি সরানো না হয় তা নিশ্চিত করতে।

android:supportsPictureInPicture

ক্রিয়াকলাপটি চিত্র-ইন-চিত্র প্রদর্শনকে সমর্থন করে কিনা তা নির্দিষ্ট করে।

android:taskAffinity

কার্যকলাপের জন্য একটি সখ্যতা রয়েছে এমন কাজটি। একই স্নেহযুক্ত ক্রিয়াকলাপগুলি ধারণাগতভাবে একই কাজের সাথে সম্পর্কিত, ব্যবহারকারীর দৃষ্টিকোণ থেকে একই "অ্যাপ্লিকেশন" এর সাথে সম্পর্কিত। কোনও কাজের সখ্যতা তার মূল ক্রিয়াকলাপের সখ্যতা দ্বারা নির্ধারিত হয়।

অ্যাফিনিটি দুটি বিষয় নির্ধারণ করে: কার্যকলাপটি পুনরায় রঙিন করা হয় ( allowTaskReparenting অ্যাট্রিবিউটটি দেখুন) এবং FLAG_ACTIVITY_NEW_TASK পতাকা দিয়ে চালু করার সময় কার্যকলাপটি যে কার্যটি রাখে।

ডিফল্টরূপে, কোনও অ্যাপ্লিকেশনটিতে সমস্ত ক্রিয়াকলাপের একই সখ্যতা থাকে। আপনি এই বৈশিষ্ট্যটিকে তাদের আলাদা আলাদাভাবে সেট করতে পারেন এবং এমনকি একই কাজের মধ্যে বিভিন্ন অ্যাপ্লিকেশনগুলিতে সংজ্ঞায়িত ক্রিয়াকলাপগুলিও রাখতে পারেন। ক্রিয়াকলাপটির কোনও কাজের জন্য কোনও সখ্যতা নেই তা উল্লেখ করার জন্য, এটি একটি খালি স্ট্রিংয়ে সেট করুন।

যদি এই বৈশিষ্ট্যটি সেট না করা হয় তবে ক্রিয়াকলাপটি অ্যাপ্লিকেশনটির জন্য সেট সেটটি উত্তরাধিকার সূত্রে প্রাপ্ত। <application> এলিমেন্টের taskAffinity বৈশিষ্ট্যটি দেখুন। কোনও আবেদনের জন্য ডিফল্ট অ্যাফিনিটির নামটি build.gradle ফাইলে নেমস্পেস সেট।

android:theme
ক্রিয়াকলাপের জন্য সামগ্রিক থিম সংজ্ঞায়িত করে একটি স্টাইল রিসোর্সের একটি রেফারেন্স। এটি এই theme ব্যবহার করার জন্য স্বয়ংক্রিয়ভাবে ক্রিয়াকলাপের প্রসঙ্গটি সেট করে এবং ক্রিয়াকলাপটি আসলে কী দেখায় তা আরও ভালভাবে মেলে, ক্রিয়াকলাপ চালু হওয়ার আগে "শুরু" অ্যানিমেশনগুলিরও কারণ হতে পারে।

যদি এই বৈশিষ্ট্যটি সেট না করা হয়, তবে ক্রিয়াকলাপটি <application> উপাদানটির theme বৈশিষ্ট্য থেকে সামগ্রিকভাবে অ্যাপ্লিকেশনটির জন্য থিম সেটটি উত্তরাধিকার সূত্রে প্রাপ্ত। যদি সেই বৈশিষ্ট্যটিও সেট না করা থাকে তবে ডিফল্ট সিস্টেম থিম ব্যবহৃত হয়। আরও তথ্যের জন্য, শৈলী এবং থিম দেখুন।

android:uiOptions

একটি কার্যকলাপের UI এর জন্য অতিরিক্ত বিকল্প। নিম্নলিখিত মানগুলির মধ্যে একটি হতে হবে।

মান বর্ণনা
"none" কোনো অতিরিক্ত UI বিকল্প নেই। এটি ডিফল্ট।
"splitActionBarWhenNarrow" অ্যাপ বারে অ্যাকশন আইটেমগুলি প্রদর্শন করতে স্ক্রিনের নীচে একটি বার যুক্ত করে, যা অ্যাকশন বার নামেও পরিচিত, যখন অনুভূমিক স্থানের জন্য সীমাবদ্ধ থাকে, যেমন যখন হ্যান্ডসেটে প্রতিকৃতি মোডে থাকে৷ স্ক্রিনের শীর্ষে অ্যাপ বারে উপস্থিত অল্প সংখ্যক অ্যাকশন আইটেমের পরিবর্তে অ্যাপ বারটি শীর্ষ নেভিগেশন বিভাগে এবং অ্যাকশন আইটেমগুলির জন্য নীচের বারে বিভক্ত হয়। এর অর্থ কেবলমাত্র অ্যাকশন আইটেমগুলির জন্যই নয়, শীর্ষে নেভিগেশন এবং শিরোনাম উপাদানগুলির জন্যও যুক্তিসঙ্গত পরিমাণ স্থান উপলব্ধ করা হয়। মেনু আইটেম দুটি বারের মধ্যে বিভক্ত হয় না। তারা সবসময় একসঙ্গে দেখা যায়।

অ্যাপ বার সম্পর্কে আরও তথ্যের জন্য, অ্যাপ বার যোগ করুন দেখুন।

এই বৈশিষ্ট্যটি API স্তর 14 এ যোগ করা হয়েছে।

android:windowSoftInputMode
ক্রিয়াকলাপের মূল উইন্ডোটি কীভাবে অন-স্ক্রিন নরম কীবোর্ডযুক্ত উইন্ডোটির সাথে ইন্টারঅ্যাক্ট করে। এই বৈশিষ্ট্যের জন্য সেটিং দুটি বিষয়কে প্রভাবিত করে:
  • যখন ক্রিয়াকলাপটি ব্যবহারকারীর মনোযোগের কেন্দ্রবিন্দুতে পরিণত হয় তখন নরম কীবোর্ডটি লুকানো বা দৃশ্যমান কিনা।
  • নরম কীবোর্ডের জন্য ঘর তৈরি করতে ক্রিয়াকলাপের মূল উইন্ডোটি আরও ছোট আকারে আকার পরিবর্তন করা হয়েছে বা উইন্ডোর অংশটি নরম কীবোর্ড দ্বারা আচ্ছাদিত থাকলে বর্তমান ফোকাসটি দৃশ্যমান করার জন্য তার বিষয়বস্তু প্যানের জন্য ঘর তৈরি করা হয়েছে কিনা।

সেটিংসটি অবশ্যই নিম্নলিখিত সারণীতে তালিকাভুক্ত মানগুলির মধ্যে একটি হতে হবে বা একটি "state..." মান প্লাস ওয়ান "adjust..." মানটির সংমিশ্রণ হতে হবে। একাধিক "state..." মানগুলির মতো উভয় গ্রুপে একাধিক মান নির্ধারণ করা অপরিজ্ঞাত ফলাফল রয়েছে। পৃথক মানগুলি একটি উল্লম্ব বার ( | ) দ্বারা পৃথক করা হয়, যেমন নিম্নলিখিত উদাহরণে দেখানো হয়েছে:

<activity android:windowSoftInputMode="stateVisible|adjustResize" ... >

এখানে সেট করা মানগুলি ( "stateUnspecified" এবং "adjustUnspecified" ব্যতীত অন্য) ওভাররাইড মানগুলি থিমে সেট করে।

মান বর্ণনা
"stateUnspecified" নরম কীবোর্ডটি লুকানো বা দৃশ্যমান কিনা তা নির্দিষ্ট করা হয়নি। সিস্টেমটি একটি উপযুক্ত রাষ্ট্র চয়ন করে বা থিমের সেটিংয়ের উপর নির্ভর করে।

এটি নরম কীবোর্ডের আচরণের জন্য ডিফল্ট সেটিংস।

"stateUnchanged" যখন ক্রিয়াকলাপটি সামনে আসে তখন নরম কীবোর্ডটি যা কিছু শেষ ছিল, দৃশ্যমান বা লুকানো ছিল তা রাখা হয়।
"stateHidden" সফট কীবোর্ডটি লুকানো থাকে যখন ব্যবহারকারী ক্রিয়াকলাপটি বেছে নেয় - অর্থাৎ যখন ব্যবহারকারী অন্য কোনও ক্রিয়াকলাপ ছেড়ে যাওয়ার সময় এটিতে সমর্থন না করে ক্রিয়াকলাপের দিকে এগিয়ে যায়।
"stateAlwaysHidden" যখন ক্রিয়াকলাপের মূল উইন্ডোতে ইনপুট ফোকাস থাকে তখন নরম কীবোর্ডটি সর্বদা লুকানো থাকে।
"stateVisible" নরম কীবোর্ডটি দৃশ্যমান হয় যখন ব্যবহারকারী ক্রিয়াকলাপটি বেছে নেয় - অর্থাৎ যখন ব্যবহারকারী অন্য কোনও ক্রিয়াকলাপ ছেড়ে যাওয়ার সময় এটিতে সমর্থন না করে ক্রিয়াকলাপের দিকে এগিয়ে যায়।
"stateAlwaysVisible" উইন্ডোটি ইনপুট ফোকাস গ্রহণ করলে নরম কীবোর্ডটি দৃশ্যমান।
"adjustUnspecified" ক্রিয়াকলাপের মূল উইন্ডোটি সফট কীবোর্ডের জন্য ঘর তৈরি করতে বা উইন্ডো প্যানের সামগ্রীগুলি অন-স্ক্রিনে দৃশ্যমান করার জন্য অন-স্ক্রিনে দৃশ্যমান করার জন্য পুনরায় আকার দেয় কিনা তা অনির্ধারিত। উইন্ডোটির সামগ্রীতে কোনও লেআউট ভিউ রয়েছে যা তাদের সামগ্রীগুলি স্ক্রোল করতে পারে তার উপর নির্ভর করে সিস্টেমটি স্বয়ংক্রিয়ভাবে এই মোডগুলির একটি নির্বাচন করে। যদি এই জাতীয় দৃষ্টিভঙ্গি থাকে তবে উইন্ডোটি পুনরায় আকার দেয়, এই ধারণায় যে স্ক্রোলিং উইন্ডোটির সমস্ত সামগ্রীকে একটি ছোট অঞ্চলের মধ্যে দৃশ্যমান করে তুলতে পারে।

এটি মূল উইন্ডোর আচরণের জন্য ডিফল্ট সেটিংস।

"adjustResize" ক্রিয়াকলাপের মূল উইন্ডোটি সর্বদা স্ক্রিনে নরম কীবোর্ডের জন্য জায়গা তৈরি করতে পুনরায় আকার দেওয়া হয়।
"adjustPan" নরম কীবোর্ডের জন্য জায়গা তৈরি করতে ক্রিয়াকলাপের মূল উইন্ডোটি পুনরায় আকার দেওয়া হয়নি। বরং, উইন্ডোর বিষয়বস্তুগুলি স্বয়ংক্রিয়ভাবে প্যান হয় যাতে বর্তমান ফোকাসটি কীবোর্ড দ্বারা কখনই অস্পষ্ট না হয় এবং ব্যবহারকারীরা সর্বদা তারা কী টাইপ করছেন তা দেখতে পারেন। এটি সাধারণত আকার পরিবর্তন করার চেয়ে কম আকাঙ্ক্ষিত, কারণ ব্যবহারকারীর উইন্ডোটির অস্পষ্ট অংশগুলির সাথে যোগাযোগ করতে এবং ইন্টারঅ্যাক্ট করার জন্য নরম কীবোর্ডটি বন্ধ করতে হবে।

এই বৈশিষ্ট্যটি এপিআই স্তর 3 এ চালু হয়েছিল।

প্রবর্তিত:
noHistory এবং windowSoftInputMode ব্যতীত সমস্ত বৈশিষ্ট্যের জন্য এপিআই স্তর 1, যা এপিআই স্তর 3 এ যুক্ত হয়েছিল।
এছাড়াও দেখুন:
<application>
<activity-alias>