روشی برای گوش دادن به Flutter
روش "قدیمی" روشی جدید برای گوش دادن به رویدادهای چرخه حیات برنامه در Flutter
نمای کلی کلاس AppLifecycleListener جدید معرفی شده در Flutter نسخه 3.13
Flutter 3.13 بسیاری از ویژگی ها و پیشرفت های جدید را معرفی کرد. یکی از آنها کلاس جدیدی به نام AppLifecycleListener است که به شما امکان می دهد به رویدادهای چرخه زندگی برنامه Flutter خود گوش دهید. این یک پیشرفت در مقایسه با روش قبلی گوش دادن به رویدادهای چرخه عمر برنامه است. در این مقاله، روشهای قدیمی و جدید گوش دادن به رویدادهای چرخه حیات برنامه را مقایسه میکنم و نحوه استفاده از کلاس جدید AppLifecycleListener را به شما نشان میدهم.
روش "قدیمی"
قبل از Flutter 3.13، میتوانستید با استفاده از میکسین
WidgetsBindingObserver به رویدادهای چرخه حیات برنامه گوش دهید. برای این کار، باید میکسین WidgetsBindingObserver را به کلاس State خود اضافه کرده و متد didChangeAppLifecycleState را لغو کنید. در روش didChangeAppLifecycleState، می توانید با استفاده از مقدار وضعیت ارائه شده (AppLifecycleState) به رویدادهای چرخه حیات برنامه گوش دهید.
بیایید ببینیم چگونه می توانیم با استفاده از کلاس جدید AppLifecycleListener به رویدادهای چرخه حیات برنامه گوش دهیم.
جهت آموزش فلاتر و سورسهای متعدد به سایت فلاتر فارسی سر بزنید
روش جدید
کلاس AppLifecycleListener روش جدیدی برای گوش دادن به رویدادهای چرخه حیات برنامه است. این کلاسی است که می توانید از آن برای گوش دادن به رویدادهای چرخه حیات برنامه بدون نیاز به استفاده مستقیم از میکسین WidgetsBindingObserver استفاده کنید. برای آن، یک نمونه از کلاس AppLifecycleListener ایجاد کنید و تمام تماسهایی را که میخواهید گوش دهید ارسال کنید.
آیا تفاوتی وجود دارد؟
همانطور که متوجه شده اید، روش های “قدیمی” و “جدید” گوش دادن به رویدادهای چرخه حیات برنامه بسیار شبیه به هم هستند. با این حال، برای درک مزیت اصلی کلاس AppLifecycleListener، بیایید نگاهی به نمودار ماشین حالت چرخه عمر برنامه Flutter بیندازیم:
جهت آموزش فلاتر و سورسهای متعدد به سایت فلاتر فارسی سر بزنید
این نمودار تمام حالت های ممکن برنامه Flutter را نشان می دهد. فلش ها انتقال های احتمالی بین حالت ها را نشان می دهد. هنگامی که روش didChangeAppLifecycleState را نادیده می گیرید (روش “قدیمی”)، فقط می توانید به تغییر وضعیت واقعی گوش دهید، به عنوان مثال. زمانی که برنامه شما در حالت از سرگیری قرار گرفت. با این حال، شما نمی توانید به انتقال بین حالت ها گوش دهید، به عنوان مثال. آیا برنامه شما از حالت غیرفعال یا جدا شده به حالت ازسرگیری رسیده است. اکنون، کلاس AppLifecycleListener به شما امکان می دهد به انتقال بین حالت ها گوش دهید:
این مزیت اصلی کلاس AppLifecycleListener است. این به شما امکان می دهد به انتقال بین حالت های چرخه عمر برنامه گوش دهید و کدهای لازم را فقط برای انتقال هایی که به آنها علاقه دارید اجرا کنید.
اما یه چیز دیگه هم هست…
پاسخ به تماس onExitRequested
کلاس AppLifecycleListener یک تماس دیگر به نام onExitRequested دارد. این پاسخ تماس برای پرسیدن از برنامه کاربردی استفاده می شود که آیا اجازه خروج از برنامه را برای مواردی که خروج قابل لغو است، می دهد یا خیر. به عنوان مثال، میتوان از آن برای برنامههای MacOS استفاده کرد که در آن کاربر سعی میکند در صورت وجود تغییرات ذخیرهنشده، برنامه را ببندد:
برای لغو درخواست خروج، باید AppExitResponse.cancel را از پاسخ تماس oneExitRequested برگردانید. در غیر این صورت، AppExitResponse.exit را برگردانید تا برنامه اجازه خروج را بدهد.
نتیجه
کلاس AppLifecycleListener یک روش جدید برای گوش دادن به حالت های چرخه عمر برنامه و مهمتر از آن، انتقال بین آنها است. علاوه بر این، پاسخ به تماس oneExitRequested فرآیند رسیدگی به درخواستهای خروج را برای مواردی که خروج قابل لغو است، ساده میکند. امیدوارم این مقاله برای شما مفید بوده باشد و از کلاس AppLifecycleListener در برنامه های Flutter خود استفاده کنید.
جهت آموزش فلاتر و سورسهای متعدد به سایت فلاتر فارسی سر بزنید
دیدگاهتان را بنویسید