میزبان تعداد قالبهای قابل نمایش برای یک وظیفه مشخص را حداکثر به پنج قالب محدود میکند که آخرین قالب باید یکی از انواع زیر باشد:
-
NavigationTemplate -
PaneTemplate -
MessageTemplate -
MediaPlaybackTemplate -
SignInTemplate -
LongMessageTemplate
توجه داشته باشید که این محدودیت برای تعداد قالبها اعمال میشود و نه تعداد نمونههای Screen در پشته. برای مثال، اگر یک برنامه در صفحه A دو قالب ارسال کند و سپس صفحه B را ارسال کند، اکنون میتواند سه قالب دیگر ارسال کند.
از طرف دیگر، اگر هر صفحه طوری ساختار یافته باشد که یک الگوی واحد ارسال کند، برنامه میتواند پنج نمونه صفحه را به پشته ScreenManager وارد کند.
موارد خاصی برای این محدودیتها وجود دارد: بهروزرسانی قالب و عملیات بازگشت و تنظیم مجدد.
بهروزرسانیهای قالب
بهروزرسانیهای خاص محتوا جزو محدودیت قالب محسوب نمیشوند. بهطورکلی، اگر برنامهای یک قالب جدید را که از همان نوع است و حاوی همان محتوای اصلی قالب قبلی است، اضافه کند، قالب جدید جزو سهمیه محسوب نمیشود. بهعنوانمثال، بهروزرسانی وضعیت تغییر وضعیت یک ردیف در ListTemplate جزو سهمیه محسوب نمیشود. برای کسب اطلاعات بیشتر در مورد اینکه چه نوع بهروزرسانیهای محتوایی را میتوان بهعنوان بهروزرسانی در نظر گرفت، به مستندات قالبهای جداگانه مراجعه کنید.
عملیات برگشت
برای فعال کردن زیرجریانها در یک وظیفه، میزبان تشخیص میدهد که چه زمانی یک برنامه در حال نمایش یک Screen از پشته ScreenManager است و سهمیه باقیمانده را بر اساس تعداد قالبهایی که برنامه از طریق آنها به عقب میرود، بهروزرسانی میکند.
برای مثال، اگر برنامه در صفحه A دو الگو ارسال کند، سپس صفحه B را اجرا کند و دو الگوی دیگر ارسال کند، یک سهمیه برای برنامه باقی میماند. اگر برنامه سپس به صفحه A برگردد، میزبان سهمیه را به سه بازنشانی میکند، زیرا برنامه دو الگو به عقب رفته است.
توجه داشته باشید که هنگام بازگشت به صفحه نمایش، برنامه باید الگویی را ارسال کند که از همان نوع الگویی باشد که آخرین بار توسط آن صفحه ارسال شده است. ارسال هر نوع الگوی دیگری باعث خطا میشود. با این حال، تا زمانی که نوع در طول عملیات برگشت یکسان باقی بماند، برنامه میتواند آزادانه محتوای الگو را بدون تأثیر بر سهمیه تغییر دهد.
عملیات را بازنشانی کنید
برخی از قالبها معانی خاصی دارند که پایان یک کار را نشان میدهند. برای مثال، NavigationTemplate نمایی است که انتظار میرود روی صفحه باقی بماند و با دستورالعملهای گام به گام جدید برای کاربر بهروزرسانی شود.
وقتی یک وظیفه به یکی از این قالبها میرسد، میزبان سهمیه قالب را بازنشانی میکند و با آن الگو طوری رفتار میکند که انگار اولین قدم برای یک وظیفه جدید است. این به برنامه اجازه میدهد تا یک وظیفه جدید را شروع کند. برای کسب اطلاعات بیشتر، به مستندات مربوط به قالبهای جداگانه مراجعه کنید تا ببینید کدام یک باعث بازنشانی در میزبان میشوند.
اگر میزبان از طریق یک اعلان یا از طریق لانچر، اینتنت (intent) برای شروع برنامه دریافت کند، سهمیه (quota) نیز بازنشانی میشود. این مکانیزم به برنامه اجازه میدهد تا یک جریان کار جدید را از اعلانها آغاز کند و حتی اگر برنامه از قبل متصل شده و در پیشزمینه باشد، این قانون پابرجا میماند.