خط مشی راه اندازی فعالیت

رفتار راه‌اندازی فعالیت با حالت‌های راه‌اندازی در فایل‌های 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() اعمال می‌شوند.