EN

Search
Close this search box.

موستانگ، وحشیِ دوست داشتنی

معرفی پایگاه داده و چرخه عمر اکتیویتی

در درس قبل با اکتیویتی و گذار بین آن ها به وسیله Intent آشنا شدید. در این درس، موستانگ قصد دارد تا شما را از چرخه عمر اکتیویتی آگاه کند. یعنی: در طول عمرش، یک اکتیویتی چه حالت هایی را می گذراند و اندروید چه توابعی را برای تغییر حالت های آن استفاده می کند. پس از آن، می پردازیم به نحوه ذخیره اطلاعات در پایگاه داده . پس با دقت به این درس توجه کنید.

 

چرخه عمر اکتیویتی

همان طور که می دانید، اپلیکیشن های موبایل، بر خلاف نرم افزارهای کامپیوتری، با زدن دکمه خروج، خاتمه پیدا نمی کنند. در واقع این اندروید است که تصمیم می گیرد که چه زمانی به چرخه عمر اکتیویتی خاتمه دهد و این کار را نیز به این دلیل انجام می دهد که تا جای ممکن، کاربر را درگیر بستن برنامه ها نکند و کاربر بتواند با سرعت بیشتری با سیستم ارتباط برقرار کند. امّا شما به عنوان یک برنامه نویس اندروید، باید از چگونگی این چرخه عمر و توابعی که توسط اندروید فراخوانی می شوند، مطلع باشید. زیرا گاهی اوقات لازم است تا قبل از خاتمه اکتیویتی، کارهای پایانی را انجام دهید. نظیر: بستن اتصالات شبکه و سوکت ها و یا ذخیره اطلاعات در پایگاه داده و غیره.

به شکل زیر دقت کنید. این تصویر، چرخه عمر اکتیویتی و حالت هایی را نشان می دهد که می تواند داشته باشد.

چرخه عمر اکتیویتی در اندروید - موستانگ
چرخه عمر اکتیویتی در اندروید – موستانگ

 

در واقع، یک اکتیویتی ساخته می شود (Created)، در معرض دید کاربر قرار می گیرد (Visible)، کاربر با آن تعامل می کند (Active)، ممکن است یک پنجره کوچک به صورت پاپ آپ روی آن نمایش داده شود و با وجود دیده شدن اکتیویتی، تمرکز از روی آن برداشته شود (Paused)، ممکن است کاربر یک برنامه دیگر را باز کند و اکتیویتی از دید او خارج شود (Stopped) و یا حتی ممکن است کارش تمام شده و از بین برده شود (Destroyed).

[*] اکتیویتی یک بار ساخته و یک بار از بین برده می شود، اما ممکن است چندین بار حالت های دیگر را تجربه کند.

 

توابعی که در چرخه عمر اکتیویتی فراخوانی می شوند

  • onCreate: وقتی فراخوانی می شود که اکتیویتی برای اولین بار ساخته می شود.
  • onStart: وقتی فراخوانی می شود که اکتیویتی می خواهد در معرض دید کاربر قرار گیرد.
  • onResume: وقتی فراخوانی می شود که اکتیویتی شروع به تعامل با کاربر می کند.
  • onPause: وقتی فراخوانی می شود که یک اکتیویتی (برنامه) دیگر می خواهد نمایش داده شود و اکتیویتی فعلی باید از دید کاربر خارج شود.
  • onStop: وقتی فراخوانی می شود که اکتیویتی دیگر برای کاربر قابل دیدن نیست.
  • onRestart: بعد از اینکه اکتیویتی در مرحله stopped قرار گرفت، می تواند فراخوانی شود.
  • onDestroy: قبل از اینکه اکتیویتی از بین برده شود، فراخوانی می شود.

همان طور که گفتیم، اندروید کنترل چرخه عمر اکتیویتی را بر عهده دارد و هر زمان که تشخیص دهد، می تواند اکتیویتی که در معرض دید کاربر نیست را بُکُشد (مثلاً با کمبود حافظه مواجه شود). بنابرین، باید قبل از اینکه این اتفاق بفتد، کارهای نهایی که مدنظرمان هست را در توابع onPause و onStop انجام دهیم.

 

ذخیره اطلاعات در پایگاه داده

اگر در درس های قبل با موستانگ همراه بوده باشید، دیدید که sunshine، داده ها را بصورت آنلاین دریافت کرده و به کاربر نمایش می داد. امّا می توان پس از دریافت این اطلاعات، آنها را ذخیره کرد و در دفعات بعدی استفاده نمود.

اما چرا باید این کار را انجام دهیم؟
  • اگر هر بار که کاربر برنامه را باز می کند، قرار باشد تا منتظر دانلود داده ها شود، زمان زیادی مصرف خواهد شد. بنابرین با دخیره اطلاعات و بازیابی مجدد آنها در دفعه بعدی، می توان سرعت کار با برنامه را افزایش داد.
  • هر بار اتصال با اینترنت، باطری زیادی را مصرف می کند.
  • همه جا امکان استفاده از اینترنت وجود ندارد.
  • ممکن است برای بسیاری از کاربران، اتصال اینترنت هزینه بر باشد.

تمامی موارد بالا، ما را به سمت ذخیره اطلاعات سوق می دهد. در اندروید، به دو روش اصلی زیر می توانید اطلاعاتتان را ذخیره کنید:

1. استفاده از  SharedPreferences

این امکان را می دهد که داده ها را بصورت کلید و محتوای آن ذخیره کنید. درکش بسیار ساده است و کار را برایتان خیلی راحت تر می کند.

2. استفاده از SQLite Database (پایگاه داده)

با استفاده از پایگاه داده، می توانیم داده هایمان را بسیار مرتب شده ذخیره کنیم. مثلا در مورد sunshine، می توانیم داده های هواشناسی هر روز را به صورت زیر ذخیره کنیم:

پایگاه داده و چرخه عمر اکتیویتی - موستانگ
ثبت اطلاعات هواشناسی در پایگاه داده – موستانگ

 

کار با پایگاه داده بسیار ساده است. در واقع برای پیاده سازی آن در اندروید، باید 3 مرحله اصلی زیر را طی کنیم:

پیاده سازی پایگاه داده در اندروید - موستانگ
پیاده سازی پایگاه داده در اندروید – موستانگ
 
مرحله 1: ساخت Contract

اما Contract چیست؟ Contract قراردادی است بین مدل داده (Data Model) ، رابط کاربری (View) و پایگاه داده (Storage) که مشخص می کند داده ها به چه شکلی باید ذخیره شوند. در واقع یک قرارداد، الگویی برای ساخت پایگاه داده است (جداول و ستون های هر جدول را اینجا تعریف می کنیم). شکل زیر قراردادی را را نشان می دهد که ما باید برای نحوه ذخیره سازی داده های sunshine بسازیم:

Contract چیست - موستانگ
Contract چیست – موستانگ
 
مرحله 2: SQLiteOpenHelper

بعد از نوشتن قرارداد، باید پایگاه داده مان را بسازیم. برای این کار از کلاس SQLiteOpenHelper استفاده می کنیم. اما SQLiteOpenHelper چیست؟ در واقع این کلاس به عنوان یک کلاس کمکی است که به ما کمک می کند تا با پایگاه داده ارتباط داشته باشیم و به جای نوشتن دستورات خام SQL، از توابع و متغیرها استفاده کنیم.

[*] دقت کنید که در اینجا برای تست کدمان، از روش تست Junit استفاده کردیم. بنابرین پیشنهاد می شود اگر با این مفهوم و همچنین مفاهیم مرتبط با SQL آشنا نیستید، آموزش های مرتبط با آن ها را جستجو کنید.

با مشاهده کامل ویدئو، با پیاده سازی تمامی این مفاهیم با جزئیات بیشتری آشنا خواهید شد.

 

 

در نهایت

[*] در این درس، با چرخه عمر اکتیویتی و توابعی که اندروید برای آن ها فراخوانی می کند، آشنا شدیم. همچنین با ثبت پیشبینی های هواشناسی در پایگاه داده، توانستیم اپلیکیشن پرسرعت تری را به کاربر ارائه کنیم. با موستانگ در درس آینده همراه باشید تا به معرفی Content Providers بپردازیم.

[*] سوالات و نظرات خود را می توانید در پایین این نوشته و در قسمت دیدگاه ها ثبت کنید. همچنین، در قسمت مانژ می توانید با نمونه کد های پر کاربرد برای برنامه نویسی اندروید آشنا شده و سوالات خود را نیز قرار دهید. تیم متخصصان برنامه نویسی موستانگ ، پاسخگوی شما خواهند بود.

 

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *