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

সিনট্যাক্স:
<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:enableOnBackInvokedCallback=["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:minAspectRatio="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> অ্যাপ্লিকেশন> উপাদান দ্বারা, সমস্ত কার্যকলাপের অভিপ্রায় ফিল্টারের জন্য ডিফল্ট লেবেল। আরও তথ্যের জন্য,