<فعالیت>

نحو:
<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" است.

اگر این ویژگی تنظیم نشده باشد، مقدار تنظیم شده توسط ویژگی allowTaskReparenting مربوطه عنصر <application> برای فعالیت اعمال می شود. مقدار پیش فرض "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> برای ارائه یک بنر برای تمام فعالیت های برنامه استفاده کنید.

این سیستم از بنر برای نمایش یک برنامه در صفحه اصلی Android TV استفاده می کند. از آنجایی که بنر فقط در صفحه اصلی نمایش داده می‌شود، تنها توسط برنامه‌هایی با فعالیتی که هدف 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" تنظیم کند، وقتی کاربر فعالیت P را از صفحه اصلی راه اندازی می کند، همه فعالیت های بالای آن - در این مورد Q - حذف می شوند. بنابراین، کاربر هنگام بازگشت به کار، فقط 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"

تغییر در تراکم نمایشگر، مانند زمانی که کاربر مقیاس نمایش متفاوتی را مشخص می کند یا نمایشگر دیگری اکنون فعال است.

در سطح 24 API اضافه شده است .

"fontScale" تغییر در فاکتور مقیاس بندی فونت، مانند زمانی که کاربر یک اندازه قلم جهانی جدید را انتخاب می کند.
"fontWeightAdjustment" مقدار افزایش وزن فونت تغییر کرده است.
"grammaticalGender" جنسیت دستوری زبان تغییر کرده است. GrammaticalInflectionManager را ببینید.

در سطح API 34 اضافه شده است .

"keyboard" تغییر در نوع صفحه کلید، مانند زمانی که کاربر صفحه کلید خارجی را وصل می کند.
"keyboardHidden" تغییر در دسترسی به صفحه کلید، مانند زمانی که کاربر صفحه کلید سخت افزاری را نشان می دهد.
"layoutDirection"

تغییر جهت طرح، مانند از چپ به راست (LTR) به راست به چپ (RTL).

در سطح 17 API اضافه شده است .

"locale" تغییر در منطقه، مانند زمانی که کاربر زبان جدیدی را انتخاب می کند که متن در آن نمایش داده می شود.
"mcc" تغییر در کد کشور تلفن همراه IMSI (MCC) هنگامی که سیم کارتی شناسایی می شود که MCC را به روز می کند.
"mnc" تغییر در کد شبکه تلفن همراه IMSI (MNC) هنگامی که سیم کارتی شناسایی می شود که MNC را به روز می کند.
"navigation" تغییر TA به نوع ناوبری (Trackball یا D-pad). به طور معمول، این اتفاق نمی افتد.
"orientation"

تغییر جهت صفحه نمایش، مانند زمانی که کاربر دستگاه را می چرخاند.

توجه: اگر برنامه شما Android 3.2 (سطح API 13) یا بالاتر را هدف قرار می‌دهد، پیکربندی‌های "screenLayout" و "screenSize" را نیز اعلام کنید، زیرا طرح‌بندی صفحه و اندازه صفحه زمانی که دستگاه بین جهت‌های عمودی و افقی جابجا می‌شود، می‌تواند تغییر کند.

"screenLayout" تغییر در چیدمان صفحه، مانند زمانی که نمایشگر دیگری فعال می شود.
"screenSize"

تغییر در اندازه صفحه نمایش موجود فعلی.

این نشان دهنده تغییر در اندازه موجود در حال حاضر، نسبت به نسبت تصویر فعلی است، بنابراین زمانی که کاربر بین افقی و عمودی جابجا می شود، تغییر می کند.

در سطح API 13 اضافه شد .

"smallestScreenSize"

تغییر در اندازه فیزیکی صفحه نمایش

این نشان دهنده تغییر اندازه بدون توجه به جهت است، بنابراین تنها زمانی تغییر می کند که اندازه فیزیکی واقعی صفحه نمایش تغییر کند، مانند جابجایی به یک صفحه نمایش خارجی. تغییر در این پیکربندی مربوط به تغییر در پیکربندی smallestWidth است.

در سطح API 13 اضافه شد .

"touchscreen" تغییر در صفحه نمایش لمسی به طور معمول، این اتفاق نمی افتد.
"uiMode" تغییر در حالت رابط کاربری، مانند زمانی که کاربر دستگاه را روی میز یا اسکله ماشین قرار می دهد، یا حالت شب تغییر می کند. برای اطلاعات بیشتر در مورد حالت‌های مختلف رابط کاربری، UiModeManager را ببینید.

در سطح 8 API اضافه شده است .

همه این تغییرات پیکربندی می تواند بر مقادیر منابع مشاهده شده توسط برنامه تأثیر بگذارد. بنابراین، هنگامی که onConfigurationChanged() فراخوانی می‌شود، معمولاً لازم است دوباره همه منابع، از جمله طرح‌بندی‌های view و drawable‌ها، بازیابی شوند تا تغییرات به درستی انجام شود.

توجه: برای انجام تغییرات پیکربندی مرتبط با چند پنجره ، از "screenLayout" و "smallestScreenSize" استفاده کنید. چند پنجره ای در Android 7.0 (سطح API 24) یا بالاتر پشتیبانی می شود.

android:directBootAware

اینکه آیا این فعالیت از Direct-Boot آگاه است یا خیر — یعنی اینکه آیا می تواند قبل از باز کردن قفل دستگاه توسط کاربر اجرا شود یا خیر.

توجه: در طول راه‌اندازی مستقیم ، یک فعالیت در برنامه شما فقط می‌تواند به داده‌هایی دسترسی داشته باشد که در حافظه محافظت‌شده دستگاه ذخیره شده‌اند.

مقدار پیش فرض "false" است.

android:documentLaunchMode
مشخص می کند که چگونه یک نمونه جدید از یک فعالیت هر بار که راه اندازی می شود به یک کار اضافه می شود. این ویژگی به کاربر اجازه می‌دهد چندین سند از یک برنامه کاربردی در صفحه نمایش اخیر ظاهر شود.

این ویژگی دارای چهار مقدار است که وقتی کاربر یک سند را با برنامه باز می کند، اثرات زیر را ایجاد می کند:

ارزش توضیحات
"intoExisting" سیستم به دنبال کاری می‌گردد که ComponentName و URI داده‌های آن با هدف راه‌اندازی مطابقت دارند. اگر سیستم چنین وظیفه‌ای را پیدا کند، سیستم کار را پاک می‌کند و مجدداً راه‌اندازی می‌شود و فعالیت ریشه با onNewIntent(android.content.Intent) تماس می‌گیرد. اگر سیستم چنین وظیفه ای را پیدا نکند، سیستم یک کار جدید ایجاد می کند.
"always" فعالیت یک کار جدید برای سند ایجاد می کند، حتی اگر سند قبلاً باز شده باشد. این همانند تنظیم پرچم‌های FLAG_ACTIVITY_NEW_DOCUMENT و FLAG_ACTIVITY_MULTIPLE_TASK است.
"none" فعالیت کار جدیدی برای فعالیت ایجاد نمی کند. این مقدار پیش‌فرض است که تنها زمانی که FLAG_ACTIVITY_NEW_TASK تنظیم شده باشد، یک کار جدید ایجاد می‌کند. صفحه Recents با فعالیت به صورت پیش‌فرض رفتار می‌کند: یک کار واحد را برای برنامه نمایش می‌دهد، که از هر فعالیتی که کاربر آخرین بار فراخوانده است، از سر گرفته می‌شود.
"never" حتی اگر هدف شامل FLAG_ACTIVITY_NEW_DOCUMENT باشد، فعالیت در سند جدیدی راه‌اندازی نمی‌شود. اگر هر یک از آنها در فعالیت تنظیم شده باشد، اگر هر یک از آنها در فعالیت تنظیم شده باشد، با تنظیم این، رفتار پرچم‌های FLAG_ACTIVITY_NEW_DOCUMENT و FLAG_ACTIVITY_MULTIPLE_TASK لغو می‌شود، و صفحه Recents یک وظیفه را برای برنامه نمایش می‌دهد که از هر فعالیتی که کاربر آخرین بار فراخوانده است، از سر گرفته می‌شود.

توجه: برای مقادیری غیر از "none" و "never" ، فعالیت با launchMode="standard" تعریف می شود. اگر این ویژگی مشخص نشده باشد، documentLaunchMode="none" استفاده می شود.

android:enabled
آیا این فعالیت می تواند توسط سیستم نمونه سازی شود یا خیر. اگر می تواند "true" است و اگر نه "false" . مقدار پیش فرض "true" است.

عنصر <application> ویژگی enabled خود را دارد که برای همه اجزای برنامه از جمله فعالیت ها اعمال می شود. ویژگی‌های <application> و <activity> باید هر دو "true" باشند، زیرا هر دو به طور پیش‌فرض هستند تا سیستم بتواند فعالیت را نمونه‌سازی کند. اگر هر کدام "false" باشد، نمی توان آن را نمونه کرد.

android:enableOnBackInvokedCallback
این پرچم به شما امکان می دهد انیمیشن های سیستم پیش بینی را در سطح فعالیت انتخاب کنید. این رفتار انتقال برنامه‌های بزرگ چند فعالیتی را به حرکات پیش‌گویانه برگشت قابل کنترل‌تر می‌کند.

تنظیم android:enableOnBackInvokedCallback=false انیمیشن‌های پیش‌بینی‌کننده برگشت را در سطح فعالیت یا در سطح برنامه، بسته به محل تنظیم برچسب، خاموش می‌کند و به سیستم دستور می‌دهد تا تماس‌های API پلتفرم OnBackInvokedCallback را نادیده بگیرد.

android:excludeFromRecents

آیا کار آغاز شده توسط این فعالیت از صفحه نمایش اخیر حذف می شود یا خیر. یعنی زمانی که این اکتیویتی فعالیت اصلی یک کار جدید است، این ویژگی تعیین می کند که آیا کار در لیست برنامه های اخیر ظاهر می شود یا خیر. اگر کار از لیست حذف شود، "true" است. "false" اگر شامل شود. مقدار پیش فرض "false" است.

android:exported

اینکه آیا فعالیت می‌تواند توسط اجزای برنامه‌های کاربردی دیگر راه‌اندازی شود یا خیر:

  • اگر "true" ، فعالیت برای هر برنامه ای قابل دسترسی است و با نام دقیق کلاس آن قابل راه اندازی است.
  • اگر "false" باشد، فعالیت را فقط می‌توان توسط مؤلفه‌های همان برنامه، برنامه‌هایی با شناسه کاربری یکسان، یا مؤلفه‌های سیستم دارای امتیاز راه‌اندازی کرد. این مقدار پیش‌فرض زمانی است که فیلترهای intent وجود نداشته باشد.

اگر فعالیتی در برنامه شما دارای فیلترهای هدف است، این عنصر را روی "true" تنظیم کنید تا به برنامه های دیگر اجازه دهید آن را شروع کنند. برای مثال، اگر فعالیت، فعالیت اصلی برنامه باشد و شامل category android.intent.category.LAUNCHER باشد.

اگر این عنصر روی "false" تنظیم شود و یک برنامه سعی کند فعالیت را شروع کند، سیستم یک ActivityNotFoundException را پرتاب می کند.

این ویژگی تنها راه برای محدود کردن قرار گرفتن در معرض یک فعالیت با سایر برنامه‌ها نیست. مجوزها همچنین برای محدود کردن نهادهای خارجی که می توانند فعالیت را فراخوانی کنند، استفاده می شود. ویژگی permission را ببینید.

android:finishOnTaskLaunch
آیا یک نمونه موجود از فعالیت بسته می شود، به جز فعالیت ریشه، زمانی که کاربر وظیفه خود را با انتخاب کار در صفحه اصلی دوباره راه اندازی می کند. اگر خاموش شود "true" است و اگر نه "false" است. مقدار پیش فرض "false" است.

اگر این ویژگی و allowTaskReparenting هر دو "true" باشند، این ویژگی بر دیگری برتری دارد. وابستگی فعالیت نادیده گرفته می شود. این فعالیت دوباره پرورش داده نمی شود، بلکه از بین می رود.

اگر FLAG_ACTIVITY_RESET_TASK_IF_NEEDED تنظیم نشده باشد، این ویژگی نادیده گرفته می شود.

android:hardwareAccelerated
آیا رندر سخت افزاری برای این فعالیت فعال است یا خیر. اگر فعال باشد "true" و اگر فعال نباشد "false" . مقدار پیش فرض "false" است.

در Android نسخه 3.0 و بالاتر، یک رندر OpenGL با شتاب سخت افزاری برای برنامه ها در دسترس است تا عملکرد بسیاری از عملیات گرافیکی دو بعدی رایج را بهبود بخشد. هنگامی که رندر شتاب‌دهنده سخت‌افزاری فعال است، بیشتر عملیات‌ها در Canvas، Paint، Xfermode، ColorFilter، Shader و Camera تسریع می‌شوند.

این منجر به انیمیشن‌های روان‌تر، اسکرول نرم‌تر و به طور کلی پاسخ‌دهی بهتر می‌شود، حتی برای برنامه‌هایی که به‌صراحت از کتابخانه‌های OpenGL چارچوب استفاده نمی‌کنند. به دلیل افزایش منابع مورد نیاز برای فعال کردن شتاب سخت افزاری، برنامه شما RAM بیشتری مصرف می کند.

همه عملیات OpenGL 2D تسریع نمی شوند. اگر رندر شتاب‌دهنده سخت‌افزاری را فعال می‌کنید، آزمایش کنید که آیا برنامه شما می‌تواند از رندر بدون خطا استفاده کند یا خیر.

android:icon

نمادی که فعالیت را نشان می دهد. هنگامی که نمایش فعالیت روی صفحه مورد نیاز است، نماد به کاربران نمایش داده می شود. به عنوان مثال، آیکون‌هایی برای فعالیت‌هایی که کارها را آغاز می‌کنند در پنجره راه‌انداز نمایش داده می‌شوند. نماد اغلب با یک برچسب همراه است. برای اطلاعات در مورد برچسب، ویژگی android:label ببینید.

این ویژگی به عنوان یک مرجع به یک منبع قابل ترسیم حاوی تعریف تصویر تنظیم می شود. اگر تنظیم نشده باشد، به جای آن از نماد مشخص شده برای برنامه به طور کلی استفاده می شود. برای اطلاعات بیشتر، ویژگی icon عنصر <application> را ببینید.

نماد فعالیت، چه در اینجا تنظیم شده باشد و چه توسط عنصر <application> ، همچنین نماد پیش‌فرض تمام فیلترهای هدف فعالیت است. برای اطلاعات بیشتر، ویژگی icon عنصر <intent-filter> را ببینید.

android:immersive
تنظیم حالت همهجانبه را برای فعالیت فعلی تنظیم می کند. اگر "true" باشد، عضو ActivityInfo.flags همیشه بیت FLAG_IMMERSIVE خود را تنظیم می کند، حتی اگر حالت immersive در زمان اجرا با استفاده از متد setImmersive() تغییر کند.
android:label

یک برچسب قابل خواندن توسط کاربر برای فعالیت. هنگامی که فعالیت به کاربر نشان داده می شود، برچسب روی صفحه نمایش داده می شود. اغلب همراه با نماد فعالیت نمایش داده می شود. اگر این ویژگی تنظیم نشده باشد، به جای آن از برچسب مجموعه برای برنامه به طور کلی استفاده می شود. ویژگی label عنصر <application> را ببینید.

برچسب فعالیت، چه در اینجا تنظیم شده باشد و چه توسط عنصر <application> ، همچنین برچسب پیش فرض برای تمام فیلترهای هدف فعالیت است. برای اطلاعات بیشتر، ویژگی label عنصر <intent-filter> را ببینید.

برچسب به عنوان یک مرجع به یک منبع رشته تنظیم می شود تا بتواند مانند رشته های دیگر در رابط کاربری محلی شود. با این حال، به عنوان یک راحتی در هنگام توسعه برنامه، می توان آن را به عنوان یک رشته خام نیز تنظیم کرد.

android:launchMode

دستورالعمل نحوه راه اندازی فعالیت. پنج حالت وجود دارد که در ارتباط با پرچم‌های فعالیت (ثابت‌های FLAG_ACTIVITY_* ) در اشیاء Intent کار می‌کنند تا مشخص کنند وقتی از اکتیویتی برای مدیریت یک intent فراخوانی می‌شود چه اتفاقی می‌افتد:

"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" را در یک زمان نگه دارد، در حالی که فعالیت "singleInstancePerTask " می‌تواند چندین بار در کارهای مختلف زمانی که FLAG_ACTIVITY_MULTIPLE_TASK یا FLAG_ACTIVITY_NEW_DOCUMENT تنظیم شده است، نمونه‌سازی شود.

یک فعالیت با حالت راه‌اندازی "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 ، به Tasks و پشته پشتی مراجعه کنید.

android:lockTaskMode
زمانی که دستگاه در حالت کار قفل کار می کند، نحوه نمایش این فعالیت توسط سیستم را تعیین می کند.

اندروید می تواند وظایف را به شکلی فراگیر و کیوسک مانند به نام حالت کار قفل اجرا کند. وقتی سیستم در حالت کار قفل اجرا می‌شود، کاربران دستگاه معمولاً نمی‌توانند اعلان‌ها را ببینند، به برنامه‌های غیرمجاز دسترسی پیدا کنند یا به صفحه اصلی بازگردند، مگر اینکه برنامه Home در لیست مجاز باشد.

فقط برنامه‌هایی که توسط یک کنترل‌کننده خط‌مشی دستگاه (DPC) در فهرست مجاز هستند، می‌توانند زمانی که سیستم در حالت کار قفل است اجرا شوند. با این حال، سیستم و برنامه‌های ممتاز می‌توانند در حالت کار قفل بدون اینکه در لیست مجاز قرار بگیرند اجرا شوند.

مقدار می تواند هر یک از مقادیر رشته R.attr.lockTaskMode زیر باشد:

ارزش توضیحات
"normal" مقدار پیش فرض این مقدار پیش فرض است. کارها به حالت قفل کار راه اندازی نمی شوند، اما می توانند با فراخوانی startLockTask() در آنجا قرار گیرند.
"never"

کارها در حالت lockTask راه اندازی نمی شوند و کاربر دستگاه نمی تواند این وظایف را از صفحه نمایش اخیر پین کند.

توجه: این حالت فقط برای برنامه های سیستمی و دارای امتیاز در دسترس است. برنامه‌های غیرمجاز با این مقدار به‌عنوان normal در نظر گرفته می‌شوند.

"if_whitelisted" اگر DPC با استفاده از DevicePolicyManager.setLockTaskPackages() به این بسته اجازه دهد، این حالت مانند always است، با این تفاوت که فعالیت باید قبل از اینکه بتواند آخرین کار قفل شده است، stopLockTask() را فراخوانی کند. اگر DPC این بسته را تأیید نکند، این حالت با normal یکسان است.
"always"

کارهایی که در این فعالیت ریشه دارند همیشه به حالت قفل کار راه اندازی می شوند. اگر سیستم از قبل در حالت قفل وظیفه زمانی که این کار راه اندازی می شود، کار جدید در بالای کار فعلی راه اندازی می شود. کارهایی که در این حالت راه اندازی می شوند می توانند با فراخوانی finish() از حالت قفل کار خارج شوند.

توجه: این حالت فقط برای برنامه های سیستمی و دارای امتیاز در دسترس است. برنامه‌های غیرمجاز با این مقدار به‌عنوان normal در نظر گرفته می‌شوند.

این ویژگی در سطح 23 API معرفی شد.

android:maxRecents
حداکثر تعداد کارهایی که در این فعالیت ریشه دارند در صفحه نمایش اخیر . وقتی به این تعداد ورودی رسید، سیستم نمونه‌ای که اخیراً کمتر استفاده شده را از صفحه نمایش اخیر حذف می‌کند. مقادیر معتبر اعداد صحیح از 1 تا 50 یا 1 تا 25 در دستگاه های با حافظه کم هستند. صفر نامعتبر است. مقدار پیش فرض 16 است.
android:maxAspectRatio

حداکثر نسبت تصویری که فعالیت پشتیبانی می کند. اگر برنامه روی دستگاهی با نسبت تصویر وسیع‌تر اجرا شود، سیستم به‌طور خودکار برنامه را جعبه‌نامه می‌کند و بخش‌هایی از صفحه را بدون استفاده می‌گذارد تا برنامه بتواند با حداکثر نسبت تصویر مشخص‌شده اجرا شود.

حداکثر نسبت تصویر به صورت اعشاری از ضریب بعد بلندتر دستگاه تقسیم بر بعد کوتاهتر آن بیان می شود. به عنوان مثال، اگر حداکثر نسبت تصویر 7:3 است، مقدار این ویژگی را 2.33 قرار دهید.

در دستگاه‌های غیر قابل پوشیدن، مقدار این ویژگی باید 1.33 یا بیشتر باشد. در دستگاه های پوشیدنی، باید 1.0 یا بیشتر باشد. در غیر این صورت، سیستم مقدار تنظیم شده را نادیده می گیرد.

توجه: اگر فعالیت resizeableActivity روی true تنظیم شده باشد، این ویژگی نادیده گرفته می شود، زیرا به این معنی است که فعالیت شما از هر اندازه ای پشتیبانی می کند.

برای اطلاعات بیشتر در مورد این ویژگی، به اعلام حداکثر نسبت تصویر مراجعه کنید.

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() هرگز فراخوانی نمی شود.

این ویژگی در سطح 3 API معرفی شد.

android:parentActivityName
نام کلاس والد منطقی فعالیت. نام اینجا باید با نام کلاس داده شده به ویژگی android:name عنصر <activity> مربوطه مطابقت داشته باشد.

سیستم این ویژگی را می‌خواند تا مشخص کند وقتی کاربر روی دکمه Up در نوار عملکرد ضربه می‌زند، کدام فعالیت را شروع کند. سیستم همچنین می‌تواند از این اطلاعات برای ترکیب پشته‌ای از فعالیت‌ها با TaskStackBuilder استفاده کند.

برای پشتیبانی از سطوح 4 تا 16 API، می‌توانید فعالیت والد را با عنصر <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>

برای اطلاعات بیشتر درباره اعلام فعالیت والد برای پشتیبانی از پیمایش بالا، ارائه ناوبری بالا را بخوانید.

این ویژگی در سطح 16 API معرفی شد.

android:persistableMode

نحوه حفظ یک نمونه از یک فعالیت در یک کار حاوی در سراسر راه اندازی مجدد دستگاه را مشخص می کند.

اگر فعالیت ریشه یک کار، مقدار این ویژگی را روی persistRootOnly تنظیم کند، آنگاه فقط فعالیت ریشه حفظ می شود. در غیر این صورت، فعالیت هایی که بالاتر از پشته کار قرار دارند، بررسی می شوند. هر یک از این فعالیت‌ها که مقدار این ویژگی را روی persistAcrossReboots تنظیم می‌کنند، حفظ می‌شوند.

اگر از این ویژگی استفاده می کنید، باید مقدار آن را روی یکی از موارد زیر تنظیم کنید:

ارزش توضیحات
persistRootOnly

مقدار پیش فرض هنگامی که سیستم راه اندازی مجدد می شود، وظیفه اکتیویتی حفظ می شود، اما فقط از قصد راه اندازی اکتیویتی ریشه استفاده می شود.

هنگامی که هدف راه‌اندازی برنامه شما، فعالیت ریشه برنامه شما را بارگیری می‌کند، فعالیت یک شی PersistableBundle دریافت نمی‌کند. بنابراین، از onSaveInstanceState() برای حفظ وضعیت فعالیت ریشه برنامه خود در راه اندازی مجدد دستگاه استفاده نکنید.

توجه: این مقدار مشخصه تنها در صورتی بر رفتار برنامه شما تأثیر می گذارد که روی فعالیت ریشه برنامه شما تنظیم شده باشد.

persistAcrossReboots

وضعیت این اکتیویتی به همراه وضعیت هر اکتیویتی بالاتر از پشته پشتی که دارای ویژگی persistableMode خود است که روی persistAcrossReboots تنظیم شده است حفظ می شود. اگر یک فعالیت دارای ویژگی persistableMode نباشد که روی persistAcrossReboots تنظیم شده باشد، یا اگر با استفاده از پرچم Intent.FLAG_ACTIVITY_NEW_DOCUMENT راه اندازی شده باشد، آن فعالیت، همراه با همه فعالیت های بالاتر پشته پشته، حفظ نمی شود.

وقتی یک intent فعالیتی را بارگیری می کند که ویژگی persistableMode آن روی persistAcrossReboots در برنامه شما تنظیم شده است، اکتیویتی یک شی PersistableBundle را در متد onCreate() خود دریافت می کند. بنابراین، تا زمانی که ویژگی persistableMode آن روی persistAcrossReboots تنظیم شده باشد، می‌توانید از onSaveInstanceState() برای حفظ وضعیت یک فعالیت در سراسر راه‌اندازی مجدد دستگاه استفاده کنید.

توجه: این مقدار مشخصه بر رفتار برنامه شما تأثیر می گذارد حتی اگر روی فعالیتی غیر از فعالیت اصلی برنامه شما تنظیم شده باشد.

persistNever

وضعیت فعالیت حفظ نشده است.

توجه: این مقدار مشخصه تنها در صورتی بر رفتار برنامه شما تأثیر می گذارد که روی فعالیت ریشه برنامه شما تنظیم شده باشد.

این ویژگی در سطح 21 API معرفی شد.

android:permission
نام مجوزی که مشتریان باید برای راه‌اندازی فعالیت یا دریافت آن برای پاسخ به یک هدف داشته باشند. اگر به یک تماس گیرنده startActivity() یا startActivityForResult() اجازه مشخصی داده نشود ، قصد آن به فعالیت تحویل داده نمی شود.

اگر این ویژگی تنظیم نشده باشد ، مجوز تنظیم شده توسط ویژگی permission عنصر <application> در مورد فعالیت اعمال می شود. اگر هیچ یک از ویژگی ها تنظیم نشده باشد ، فعالیت با اجازه محافظت نمی شود.

برای کسب اطلاعات بیشتر در مورد مجوزها ، به بخش مجوزهای نمای کلی و نکات امنیتی آشکار برنامه مراجعه کنید.

android:process

نام فرایندی که در آن فعالیت اجرا می شود. به طور معمول ، تمام مؤلفه های یک برنامه که در یک فرآیند پیش فرض ایجاد شده برای برنامه اجرا می شوند ، و نیازی به استفاده از این ویژگی نیست. اما در صورت لزوم ، می توانید نام فرآیند پیش فرض را با این ویژگی نادیده بگیرید و به شما امکان می دهد اجزای برنامه خود را در چندین فرآیند پخش کنید.

اگر نامی که به این ویژگی اختصاص داده شده با یک روده بزرگ آغاز می شود ( : ، یک فرآیند جدید ، خصوصی به برنامه ، در صورت نیاز ایجاد می شود و فعالیت در آن فرآیند اجرا می شود.

اگر نام فرآیند با یک شخصیت کوچک شروع شود ، فعالیت در یک فرآیند جهانی از آن نام اجرا می شود ، مشروط بر اینکه اجازه انجام این کار را داشته باشد. این امر به مؤلفه های برنامه های مختلف اجازه می دهد تا یک فرآیند را به اشتراک بگذارند و باعث کاهش مصرف منابع شوند.

ویژگی process <application> عنصر می تواند یک نام فرآیند پیش فرض متفاوت را برای همه مؤلفه ها تنظیم کند.

android:relinquishTaskIdentity

این که آیا این فعالیت از شناسه های وظیفه خود به فعالیتی بالاتر از آن در پشته کار منصرف می شود. وظیفه ای که فعالیت اصلی آن دارای این ویژگی است که روی "true" تنظیم شده است ، Intent پایه را با فعالیت بعدی در کار جایگزین می کند.

اگر فعالیت بعدی نیز این ویژگی را بر روی "true" تنظیم کرده باشد ، Intent پایه را به هر فعالیتی که در همان کار راه اندازی می شود ، به دست می آورد. این برای هر فعالیت ادامه می یابد تا زمانی که فعالیتی با آن روبرو شود که این ویژگی را به "false" تنظیم کند. مقدار پیش فرض "false" است.

این ویژگی در "true" تنظیم شده است و همچنین امکان استفاده از فعالیت از ActivityManager.TaskDescription را برای تغییر برچسب ها ، رنگ ها و نمادهای موجود در صفحه Recents فراهم می کند.

android:requireContentUriPermissionFromCaller

مجوزهای لازم برای راه اندازی این فعالیت را هنگام عبور از URI های محتوا مشخص می کند. مقدار پیش فرض none نیست ، به این معنی که مجوزهای خاصی لازم نیست. تنظیم این ویژگی ، دعوت فعالیت را بر اساس مجوزهای Invoker محدود می کند. اگر Invoker مجوزهای لازم را نداشته باشد ، شروع فعالیت از طریق SecurityException رد می شود.

توجه داشته باشید که این اجرای برای محتوای URI در داخل Intent.getData() ، Intent.EXTRA_STREAM و Intent.getClipData() کار می کند.

ممکن است با استفاده از '\\ ؛' یک مقدار رشته باشد برای فرار از شخصیت هایی مانند '\\ n' یا '\\ uxxxx' برای یک شخصیت یونیکد ؛

باید یکی از مقادیر ثابت زیر باشد.

ثابت ارزش توضیحات
هیچ کدام 0 به طور پیش فرض ، مجوز خاصی لازم نیست.
خواندن 1 Invoker را مجبور به دسترسی به URI های محتوای منتقل شده می کند.
رجیت 4 Invoker را مجبور می کند تا هم به URIS محتوای منتقل شده دسترسی داشته باشد و بنویسد.
خواننده 3 Invoker را مجبور می کند تا به URIS محتوای منتقل شده دسترسی داشته باشد یا بنویسد.
نوشتن 2 Invoker را مجبور می کند تا دسترسی به URIS محتوای منتقل شده را بنویسد.
android:resizeableActivity

مشخص می کند که آیا برنامه از حالت چند پنجره پشتیبانی می کند یا خیر. می توانید این ویژگی را در عنصر <activity> یا <application> تنظیم کنید.

اگر این ویژگی را روی "true" تنظیم کنید ، کاربر می تواند فعالیت را در حالت های اسپلیت و فرم های آزاد انجام دهد. اگر این ویژگی را روی "false" تنظیم کنید ، برنامه نمی تواند برای یک محیط چند پنجره آزمایش یا بهینه سازی شود. این سیستم هنوز هم می تواند فعالیت را در حالت چند پنجره با استفاده از حالت سازگاری اعمال کند.

تنظیم این ویژگی در "false" تضمین نمی کند که هیچ برنامه دیگری در حالت چند پنجره قابل مشاهده بر روی صفحه نمایش ، مانند تصویر در تصویر یا سایر نمایشگرها وجود ندارد. بنابراین ، تنظیم این پرچم به این معنی نیست که برنامه شما دسترسی به منابع انحصاری دارد.

اگر برنامه شما API سطح 24 یا بالاتر را هدف قرار دهد و مقداری برای این ویژگی مشخص نکنید ، مقدار این ویژگی به "true" پیش فرض می کند.

اگر برنامه شما API سطح 31 یا بالاتر را هدف قرار دهد ، این ویژگی در صفحه های کوچک و بزرگ متفاوت است:

  • صفحه های بزرگ (SW> = 600DP): همه برنامه ها از حالت چند پنجره پشتیبانی می کنند. این ویژگی نشان می دهد که آیا یک برنامه قابل تغییر اندازه است ، نه اینکه آیا برنامه از حالت چند پنجره پشتیبانی می کند. اگر resizeableActivity="false" ، برنامه در صورت لزوم در حالت سازگاری قرار می گیرد تا با نمایش ابعاد مطابقت داشته باشد.
  • صفحه های کوچک (SW <600DP): اگر resizeableActivity="true" و حداقل عرض و حداقل ارتفاع فعالیت در شرایط چند پنجره باشد ، برنامه از حالت چند پنجره پشتیبانی می کند. اگر resizeableActivity="false" ، برنامه بدون در نظر گرفتن حداقل عرض و ارتفاع فعالیت از حالت چند پنجره پشتیبانی نمی کند.

توجه: تولید کنندگان دستگاه می توانند رفتار API سطح 31 را نادیده بگیرند.

این ویژگی در سطح 24 API اضافه شد.

توجه: مقدار فعالیت ریشه یک کار برای کلیه فعالیتهای اضافی که در کار انجام شده است اعمال می شود. یعنی اگر فعالیت اصلی یک کار قابل انعطاف باشد ، سیستم با تمام فعالیت های دیگر در کار به عنوان قابل تنظیم رفتار می کند. اگر فعالیت ریشه قابل انعطاف نباشد ، فعالیت های دیگر در این کار قابل تنظیم نیست.

android:screenOrientation

جهت گیری درخواست شده فعالیت.

هنگامی که یک فعالیت کل صفحه را پر می کند ، جهت گیری درخواست شده به عنوان پیشنهادی برای تغییر جهت گیری در آن صفحه عمل می کند تا با مقدار درخواست شده مطابقت داشته باشد. این می تواند منجر به جهت گیری شود که با جهت گیری فیزیکی صفحه نمایش در فضا متفاوت باشد و کاربر را ملزم به چرخش دستگاه برای ادامه استفاده از برنامه کند. در Android 12 (API سطح 31) و بالاتر ، تولید کنندگان دستگاه می توانند صفحه های دستگاه های جداگانه (مانند صفحه نمایش رایانه لوحی یک تاشو) را پیکربندی کنند تا این پیشنهاد را نادیده بگیرند ، و در عوض ، یک فعالیت را مجبور کنند که در جهت یابی کاربر از جهت گیری مورد نظر کاربر قرار بگیرند. دستگاه این منجر به جهت گیری فعالیت با درخواست شده بدون نیاز به کاربر برای چرخش جسمی دستگاه خود می شود.

در حالت چند پنجره ، جهت گیری درخواست شده به عنوان پیشنهادی برای جهت گیری کلی عمل نمی کند. اگر فعالیت با جعبه نامه نامه باشد ، جهت گیری درخواست شده بر جعبه نامه اعمال شده برای فعالیت تأثیر می گذارد.

مقدار می تواند یکی از رشته های زیر باشد:

"unspecified" مقدار پیش فرض سیستم جهت گیری را انتخاب می کند. سیاستی که از آن استفاده می کند ، و بنابراین گزینه های انجام شده در زمینه های خاص ممکن است از دستگاه به دستگاه دیگر متفاوت باشد.
"behind" همان جهت گیری فعالیتی که بلافاصله در زیر آن در پشته فعالیت قرار دارد.
"landscape" جهت گیری منظره (صفحه نمایش گسترده تر از آن است).
"portrait" جهت گیری پرتره (صفحه نمایش بلندتر از آن است).
"reverseLandscape" جهت گیری منظره در جهت مخالف از منظره عادی. در سطح API 9 اضافه شده است.
"reversePortrait" جهت گیری پرتره در جهت مخالف از پرتره معمولی. در سطح API 9 اضافه شده است.
"sensorLandscape" جهت گیری منظره ، اما می تواند بر اساس سنسور دستگاه ، منظره طبیعی یا معکوس باشد. از سنسور استفاده می شود حتی اگر کاربر چرخش مبتنی بر سنسور را قفل کرده باشد. در سطح API 9 اضافه شده است.
"sensorPortrait" جهت گیری پرتره ، اما می تواند بر اساس سنسور دستگاه طبیعی یا معکوس باشد. از سنسور استفاده می شود حتی اگر کاربر چرخش مبتنی بر سنسور را قفل کرده باشد. با این حال ، بسته به پیکربندی دستگاه ، چرخش وارونه ممکن است مجاز نباشد. در سطح API 9 اضافه شده است.
"userLandscape" جهت گیری منظره ، اما می تواند بر اساس سنسور دستگاه و ترجیح کاربر ، منظره طبیعی یا معکوس باشد. اضافه شده در سطح API 18.
"userPortrait" جهت گیری پرتره ، اما می تواند بر اساس سنسور دستگاه و ترجیح کاربر ، پرتره طبیعی یا معکوس باشد. با این حال ، بسته به پیکربندی دستگاه ، چرخش وارونه ممکن است مجاز نباشد. اضافه شده در سطح API 18.
"sensor" سنسور جهت گیری دستگاه جهت گیری را تعیین می کند. جهت گیری صفحه نمایش بستگی به نحوه نگه داشتن کاربر دارد. هنگامی که کاربر دستگاه را می چرخاند تغییر می کند. با این حال ، برخی از دستگاه ها به طور پیش فرض به هر چهار جهت ممکن نمی چرخند. برای استفاده از هر چهار جهت ، از "fullSensor" استفاده کنید. از سنسور حتی اگر چرخش مبتنی بر سنسور قفل شده استفاده می شود.
"fullSensor" سنسور جهت گیری دستگاه جهت گیری برای هر یک از چهار جهت گیری را تعیین می کند. این شبیه به "sensor" است ، به جز این امکان را برای هر یک از چهار جهت ممکن صفحه نمایش بدون در نظر گرفتن آنچه که دستگاه به طور معمول پشتیبانی می کند ، امکان پذیر می کند. به عنوان مثال ، برخی از دستگاه ها به طور معمول از پرتره معکوس یا چشم انداز معکوس استفاده نمی کنند ، اما این امر این جهت ها را قادر می سازد. در سطح API 9 اضافه شده است.
"nosensor" جهت گیری بدون مراجعه به سنسور جهت گیری فیزیکی تعیین می شود. سنسور نادیده گرفته می شود ، بنابراین صفحه نمایش بر اساس نحوه حرکت کاربر دستگاه نمی چرخد.
"user" جهت یابی فعلی کاربر.
"fullUser" اگر کاربر چرخش مبتنی بر سنسور را قفل کرده باشد ، این مانند user رفتار می کند ، در غیر این صورت مانند fullSensor رفتار می کند و به هر یک از چهار جهت ممکن صفحه نمایش اجازه می دهد. اضافه شده در سطح API 18.
"locked" جهت گیری را به چرخش فعلی خود قفل می کند ، هر آنچه که هست. اضافه شده در سطح API 18.

توجه: هنگامی که یکی از ارزش های چشم انداز یا پرتره را اعلام می کنید ، این یک نیاز سخت برای جهت گیری است که در آن فعالیت انجام می شود. ارزشی که شما اعلام می کنید فیلتر را توسط خدماتی مانند Google Play امکان پذیر می کند ، بنابراین برنامه شما فقط در دستگاه هایی که از جهت گیری مورد نیاز فعالیت های شما پشتیبانی می کنند ، در دسترس است. به عنوان مثال ، اگر یا "landscape" ، "reverseLandscape" یا "sensorLandscape" را اعلام می کنید ، برنامه شما فقط در اختیار دستگاه هایی است که از جهت گیری چشم انداز پشتیبانی می کنند.

همچنین صریحاً اعلام کنید که برنامه شما به عنصر <uses-feature> ، مانند <uses-feature android:name="android.hardware.screen.portrait"/> نیاز به جهت گیری پرتره یا چشم انداز دارد. این یک رفتار فیلتر ارائه شده توسط Google Play و سایر سرویس هایی است که از آن پشتیبانی می کنند ، و خود این سیستم عامل کنترل نمی کند که آیا برنامه شما می تواند نصب کند وقتی یک دستگاه فقط از جهت گیری های خاصی پشتیبانی می کند.

android:showForAllUsers

این که آیا وقتی کاربر فعلی دستگاه با کاربر که فعالیت را راه اندازی کرده است ، فعالیت نشان داده می شود. شما می توانید این ویژگی را بر روی یک مقدار تحت اللفظی ، مانند "true" یا "false" تنظیم کنید ، یا می توانید ویژگی را بر روی یک منبع یا ویژگی موضوعی تنظیم کنید که حاوی یک مقدار بولی باشد.

این ویژگی در سطح 23 API اضافه شد.

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 تنظیم می کند و همچنین ممکن است باعث ایجاد انیمیشن های "شروع" قبل از فعالیت شود ، تا بتواند با آنچه در واقع فعالیت به نظر می رسد مطابقت داشته باشد.

اگر این ویژگی تنظیم نشده باشد ، این فعالیت از موضوع تنظیم شده برای کل برنامه ، از ویژگی theme عنصر <application> به ارث می برد. اگر این ویژگی نیز تنظیم نشده باشد ، از موضوع پیش فرض سیستم استفاده می شود. برای اطلاعات بیشتر ، به سبک ها و مضامین مراجعه کنید.

android:uiOptions

گزینه های اضافی برای UI یک فعالیت. باید یکی از مقادیر زیر باشد.

ارزش توضیحات
"none" بدون گزینه UI اضافی. این پیش فرض است.
"splitActionBarWhenNarrow" یک نوار در انتهای صفحه برای نمایش موارد عمل در نوار برنامه ، همچنین به عنوان نوار اکشن ، هنگامی که برای فضای افقی محدود می شود ، مانند هنگام در حالت پرتره روی یک گوشی ، اضافه می کند. به جای تعداد کمی از موارد اکشن که در نوار برنامه در بالای صفحه ظاهر می شوند ، نوار برنامه به بخش ناوبری بالا و نوار پایین برای موارد عمل تقسیم می شود. این بدان معناست که فضای معقول نه تنها برای موارد عمل ، بلکه برای ناوبری و عناصر عنوان در بالا نیز در دسترس است. موارد منو در دو میله تقسیم نمی شوند. آنها همیشه با هم ظاهر می شوند.

برای اطلاعات بیشتر در مورد نوار برنامه ، به نوار برنامه اضافه کنید.

این ویژگی در سطح 14 API اضافه شد.

android:windowSoftInputMode
چگونه پنجره اصلی فعالیت با پنجره حاوی صفحه کلید نرم روی صفحه تعامل دارد. تنظیم این ویژگی بر دو چیز تأثیر می گذارد:
  • این که صفحه کلید نرم پنهان باشد یا قابل مشاهده باشد وقتی فعالیت مورد توجه توجه کاربر قرار می گیرد.
  • این که آیا پنجره اصلی فعالیت کوچکتر است تا جایی برای صفحه کلید نرم یا تابه محتویات آن ایجاد شود تا هنگامی که بخشی از پنجره توسط صفحه کلید نرم پوشانده می شود ، تمرکز فعلی را مشاهده کند.

تنظیم باید یکی از مقادیر ذکر شده در جدول زیر یا ترکیبی از یک "state..." مقدار به علاوه یک "adjust..." باشد. تنظیم مقادیر متعدد در هر گروه ، مانند مقادیر چند "state..." ، نتایج نامشخصی دارد. مقادیر فردی توسط یک نوار عمودی ( | ) از هم جدا می شوند ، همانطور که در مثال زیر نشان داده شده است:

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

مقادیر تنظیم شده در اینجا (غیر از "stateUnspecified" و "adjustUnspecified" ) مقادیر تنظیم شده در موضوع را نادیده می گیرند.

ارزش توضیحات
"stateUnspecified" این که صفحه کلید نرم پنهان باشد یا قابل مشاهده است مشخص نشده است. سیستم حالت مناسبی را انتخاب می کند یا به تنظیم موضوع متکی است.

این تنظیم پیش فرض برای رفتار صفحه کلید نرم است.

"stateUnchanged" صفحه کلید نرم در هر شرایطی که آخرین آن بود ، قابل مشاهده یا پنهان نگه داشته می شود ، هنگامی که فعالیت به نتیجه می رسد.
"stateHidden" صفحه کلید نرم وقتی کاربر فعالیت را انتخاب می کند پنهان است - یعنی وقتی کاربر به طور تأیید به سمت فعالیت حرکت می کند ، به جای اینکه هنگام ترک فعالیت دیگری به آن برگردد.
"stateAlwaysHidden" صفحه کلید نرم همیشه پنهان است وقتی پنجره اصلی فعالیت دارای تمرکز ورودی است.
"stateVisible" صفحه کلید نرم هنگامی که کاربر فعالیت را انتخاب کند ، قابل مشاهده است - یعنی وقتی کاربر به طور تأیید به سمت فعالیت حرکت می کند ، به جای اینکه هنگام ترک فعالیت دیگری به آن برگردد.
"stateAlwaysVisible" صفحه کلید نرم وقتی پنجره تمرکز ورودی را دریافت می کند ، قابل مشاهده است.
"adjustUnspecified" این که آیا پنجره اصلی فعالیت برای ایجاد فضای صفحه کلید نرم یا محتویات تابه پنجره تغییر اندازه می دهد تا تمرکز فعلی روی صفحه نمایش قابل مشاهده باشد. این سیستم به طور خودکار بسته به اینکه آیا محتوای پنجره دارای نمای طرح است که می تواند محتوای آنها را پیمایش کند ، به طور خودکار یکی از این حالت ها را انتخاب می کند. اگر چنین منظره ای وجود داشته باشد ، پنجره تغییر اندازه می دهد ، با این فرض که پیمایش می تواند تمام محتوای پنجره را در یک منطقه کوچکتر قابل مشاهده کند.

این تنظیم پیش فرض برای رفتار پنجره اصلی است.

"adjustResize" پنجره اصلی فعالیت همیشه تغییر اندازه داده می شود تا جایی برای صفحه کلید نرم روی صفحه نمایش ایجاد شود.
"adjustPan" پنجره اصلی فعالیت تغییر شکل نمی یابد تا جایی برای صفحه کلید نرم ایجاد شود. در عوض ، محتویات پنجره به طور خودکار تابه است تا تمرکز فعلی هرگز توسط صفحه کلید مبهم نباشد ، و کاربران همیشه می توانند آنچه را که تایپ می کنند ببینند. این امر به طور کلی کمتر از تغییر اندازه مطلوب است ، زیرا ممکن است کاربر برای رسیدن و تعامل با قسمت های مبهم پنجره ، صفحه کلید نرم را ببندد.

این ویژگی در سطح 3 API معرفی شد.

معرفی شده در:
API سطح 1 برای همه ویژگی ها به جز noHistory و windowSoftInputMode ، که در سطح 3 API اضافه شده اند.
همچنین ببینید:
<application>
<activity-alias>