آشنایی با Android Activity Lifecycle (بخش اول)
اکتیویتی ها یکی از مهم ترین اجزای اپلیکیشن اندروید به شمار میروند و جهت درک نحوه عملکرد اکتیویتی ها، باید با lifecycle آنها آشنایی داشته باشید. در این مطلب آموزشی به شرح Android Activity Lifecycle میپردازیم.
Android Lifecycle
اکتیویتی یک صفحه جداگانه در اپلیکیشن اندروید است که مشابه پنجره در اپلیکیشن ویندوز یا فریم در برنامه جاوا میباشد. با استفاده از اکتیویتی میتوانید تمامی اجزای رابط کاربری یا ویجت ها را در صفحه قرار دهید.
هر اکتیوتی یک Lifecycle دارد، به این معنا که میتواند در وضعیت های مختلفی قرار داشته باشد و این شرایط به تعاملات کاربر و آنچه در اپلیکیشن اتفاق می افتد بستگی دارد.
متدهای Lifecycle
هر بار که وضعیت اکتیوتی تغییر پیدا میکند، یکی از متدهای Lifecycle زیر در کلاس اکتیویتی فراخوانی میشوند:
()onCreate: این متد با اولین اینیشیالایز شدن اکتیویتی فراخوانی میشود و برای اینکه هرگونه عملیات اینیشیالایز مختص به اکتیویتی را انجام دهید، نیاز به جایگذاری این متد دارید.
()onStart: این متد زمانی که اکتیوتی در حال آماده شدن برای نمایش به کاربر است فرخوانی میشود و وقتی فراخوانی این متد تمام شد، متد ()onResume صدا زده خواهد شد.
()onResume: اکتیویتی در این مرحله تعامل با کاربر را آغاز میکند و تا زمانی که اتفاق خاصی مانند زنگ زدن گوشی یا ... نیفتد، همچنان در این وضعیت خواهد ماند. اما اگر عملیات به هر دلیلی مختل شد، ()onPause فراخوانی میشود.
()onPause: این متد برای متوقف کردن عملیاتی است که در زمان pause بودن اکتیویتی نباید انجام شوند. فراخوانی این متد به این معناست که کاربر در حال بیرون رفتن از اپلیکیشن میباشد. برای مثال در اپلیکیشن موزیک پلیر، زنگ خوردن گوشی، اپلیکیشن را به وضعیت توقف میبرد و موزیکی که در حال پلی است قطع میشود. وقتی کاربر به اپلیکیشن بازگشت، متد ()onResume برای ادامه عملیات فراخوانی میشود.
()onStop: این متد زمانی فراخوانی میشود که اکتیویتی دیگر در اپلیکیشن نمایش داده نمیشود (مثلا وقتی اکتیویتی دیگری بارگذاری شده و کل صفحه نمایش را گرفته باشد). با فراخوانی این متد اپلیکیشن در وضعیت متوقف شده قرار میگیرد و در این وضعیت سیستم ممکن است ()onResart را برای تعامل مجدد با اکتیویتی صدا بزند یا از متد ()onDestroy برای از بین بردن اکتیویتی استفاده کند.
()onDestroy: این متد وقتی اکتیویتی از بین برده شد فراخوانی میشود. سیستم زمانی که کاربر اکتیویتی را بست این متد را فراخوانی میکند و شاید به طور موقت برای ذخیره فضا، فرآیندی را که دربرگیرنده اکتیویتی است از بین ببرد. باید هر منبعی را که اکتیویتی در این متد ساخته از بین ببرید، در غیر این صورت اپلیکیشن با نشتی حافظه مواجه میشود.
در مطلب بعدی با جزئیات بیشتری درباره ساخت اکتیویتی ها آشنا خواهید شد، با ما همراه باشید.