از 27 مارس 2025، توصیه می کنیم از android-latest-release
به جای aosp-main
برای ساختن و کمک به AOSP استفاده کنید. برای اطلاعات بیشتر، به تغییرات AOSP مراجعه کنید.
خط مشی راه اندازی فعالیت
با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
رفتار راهاندازی فعالیت با حالتهای راهاندازی در فایلهای AndroidManifest.xml
برنامهها، پرچمهای هدف و گزینههای Activity ارائهشده توسط تماسگیرنده تعریف میشود. از ActivityOption#setLaunchDisplayId(int)
برای هدف قرار دادن یک نمایشگر خاص برای راه اندازی فعالیت استفاده کنید.
- بهطور پیشفرض، فعالیت در همان صفحه نمایشگر با تماسگیرنده اجرا میشود. به عنوان مثال، یک نمونه جدید از یک فعالیت شروع شده از راهانداز باید در همان صفحه نمایش بدون پرچمها یا گزینههای اضافی قرار گیرد. حتماً از زمینه درست (Activity در مقابل Application) برای راه اندازی استفاده کنید.
- اگر راهاندازی از منبعی انجام شود که با یک صفحه نمایش خاص مرتبط نیست (مانند یک پوسته یا زمینه برنامه)، آنگاه فعالیت در صفحه نمایش بالایی که کاربر آخرین بار در آن با دستگاه تعامل داشته یا آخرین فعالیت از آن راهاندازی شده، قرار میگیرد.
- قصد راه اندازی یک فعالیت را می توان به یک نمونه فعالیت موجود در سیستم حل کرد. در چنین حالتی، اگر هیچ پرچم اضافی ارائه نشده باشد، یک فعالیت در همان صفحه نمایشی که آخرین بار در آن استفاده شده است ظاهر می شود. اگر نمایش هدف با
ActivityOptions#setTargetDisplayId()
مشخص شده باشد، فعالیت به آن نمایشگر منتقل میشود (اگر محدودیتهای امنیتی و دیگر مجاز باشند).
محدودیت های امنیتی
برای جلوگیری از سوء استفاده یک برنامه مخرب از اطلاعات حساس کاربر با خواندن آن از روی سطح یک نمایشگر مجازی که ایجاد کرده است، برنامه ها می توانند فعالیت های خود را فقط بر روی صفحه نمایش مجازی ساخته شده خود در Android 10 راه اندازی کنند.
- اجزای سیستم با مجوز
INTERNAL_SYSTEM_WINDOW
می توانند روی هر صفحه نمایشی راه اندازی شوند. - تماسگیرندگان با مجوز
ACTIVITY_EMBEDDING
میتوانند فعالیتهایی را از برنامههای دیگری راهاندازی کنند که دارای پرچم ActivityInfo.FLAG_ALLOW_EMBEDDED
هستند. - راه اندازی فعالیت در نمایشگرهای خصوصی فقط برای مالک یا فعالیت های موجود در آن نمایشگر مجاز است.
محدودیت های مشابهی برای افزودن ویندوز به نمایشگرها اعمال می شود.
Android 10 شامل روش ActivityManager#isActivityStartAllowedOnDisplay(Context context, int displayId, Intent intent)
برای بررسی محدودیت های امنیتی برنامه قبل از شروع به کار روی نمایشگر است. در Android 9 (و پایینتر)، نتایج راهاندازی محدود، SecurityException
را ایجاد میکنند.
اکثر محدودیتهای امنیتی در متد ActivityStackSupervisor#isCallerAllowedToLaunchOnDisplay()
اعمال میشوند.
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","easyToUnderstand","thumb-up"],["مشکلم را برطرف کرد","solvedMyProblem","thumb-up"],["غیره","otherUp","thumb-up"]],[["اطلاعاتی که نیاز دارم وجود ندارد","missingTheInformationINeed","thumb-down"],["بیشازحد پیچیده/ مراحل بسیار زیاد","tooComplicatedTooManySteps","thumb-down"],["قدیمی","outOfDate","thumb-down"],["مشکل ترجمه","translationIssue","thumb-down"],["مشکل کد / نمونهها","samplesCodeIssue","thumb-down"],["غیره","otherDown","thumb-down"]],["تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی."],[],[],null,["# Activity launch policy\n\n*Activity launch behavior* is defined by launch modes in the\n`AndroidManifest.xml` files of apps, intent flags, and ActivityOptions\nprovided by the caller. Use `ActivityOption#setLaunchDisplayId(int)` to\ntarget a specific display for activity launch.\n\n- By default, the activity launches on the same display as the caller. For example, a new instance of an activity started from the launcher should be placed on the same display without additional flags or options. Be sure to use the correct context (Activity versus Application) for launch.\n- If the launch is performed from a source not associated with a specific display (such as from a shell or Application context), then the activity is placed on the top display on which the user last interacted with the device or from which the last activity was launched.\n- Intent to launch an activity can be resolved to an existing activity instance in the system. In such a case, if no additional flags were provided, an activity surfaces on the same display where it was last used. If the target display is specified with `ActivityOptions#setTargetDisplayId()`, then the activity is moved to that display (if allowed by security and other restrictions).\n\nSecurity restrictions\n---------------------\n\nTo prevent a malicious app from misappropriating user-sensitive information\nby reading it from the surface of a virtual display that it has created, apps can\nlaunch their own activities *only* on a virtual display of their creation\nin Android 10. However:\n\n- System components with the `INTERNAL_SYSTEM_WINDOW` permission can launch on any display.\n- Callers with the `ACTIVITY_EMBEDDING` permission can launch activities from other apps that have the flag `ActivityInfo.FLAG_ALLOW_EMBEDDED`.\n- Activity launches on private displays are allowed only for the owner or activities present on that display.\n\nSimilar restrictions apply to adding windows to displays.\n\nAndroid 10 includes the\n`ActivityManager#isActivityStartAllowedOnDisplay(Context context, int\ndisplayId, Intent intent)` method to check security restrictions for the\napp before attempting to launch on a display. In Android 9\n(and lower), restricted launch results throw `SecurityException`.\n\nMost security restrictions are applied in the\n`ActivityStackSupervisor#isCallerAllowedToLaunchOnDisplay()` method."]]