آموزش اندروید فصل سوم قسمت ششم – حفظ اطلاعات

آموزش برنامه نویسی اندروید فصل سوم

در قسمت بیست و چهارم آموزش اندروید در ادامه مفاهیم چرخش صفحه موشکافانه تر این موضوع را بررسی خواهیم کرد و نحوه حفظ اطلاعات پس از نابودی اکتیویتی و تعیین کردن جهت و تشخیض جهت حین جرا را آموزش داده ایم.

آموزش اندروید فصل سوم قسمت ششم – حفظ اطلاعات

تداوام وضعیت اطلاعات  در هنگام تغییرات اساسی

در تغییرات اساسی (تغییراتی که باعث نابودیه اکتیویتی میشود) اطلاعات از بین میرود برای مثال تغییری چون چرخش صفحه که باعث reset کردن اکتیویتی میشود ممکن است اطلاعات نیز از بین برود پس باید از این اتفاق جلوگیری شود.هنگام تخریب اکتیویتی دو متد امکان اجرا دارند که به شرح زیر است:

  • ()OnPause : این متد هنگام نابودی اکتیویتی یا به پس زمینه رفتن اکتیویتی استفاده میشود.
  • ()onSavedInstanceState : این متد هم مثل متد بالا هنگام نابودی اکتیویتی یا هنگام پس زمینه رفتن اکتیویتی اجرا میشود با این تفاوت که این متد پس از نابودی اکتیویتی اطلاعات را ذخیره میکند.درواقع اجرای پیش فرض این متد اطلاعات درمورد وضعیت سلسله مراتبی ابزار اکتیویتی را ذخیره میکند.برای مثال متن درون ابزار EditText 

مثال زیر نحوه ذخیره یک رشته به نام ای دی را درون شی Bundle در متد ()onSavedInstanceState را نشان میدهد توجه کنید که این متد یک آرگومان Bundle را ارایه میدهد و همچنین از مقادیر key برای حفظ اطلاعات استفاده میکند. همانگونه که مشاهده میکنید با متد ()pustString یک مقدار رشته ای را با نام ID و مقدار مشخص ذخیره میکند.در انتها نیز superclass را برای ذخیره سازی فراخوانی کنید

وقتی که یک اکتیویتی باز ایجاد گردد اولین متدی که اجرا میشود متد ()onCreate است و به دنبال آن متد ()onRestoreInstanceState نیز اجرا میگردد تا حالت قبلی که با استفاده از متد ()onSavedInstanceState به واسطه شی Bundle (به این نکته توجه داشته باشید که تنها میتوان اطلاعات را در شی Bundle ذخیره کرد.) به عنوان آرگومان ذخیره شده است بازیابی گردد:

تشخیص تغییر جهت

بعضی مواقع نیاز است تا در زمان اجرای برنامه وضعیت جهت دستگاه را بدانیم برای اینکار از کلاس WindowManager استفاده میکنیم.

قطعه کد زیرتشخیص وضعیت دستگاه را هنگام اجرا نمایش میدهد:

متد ()getDefaultDisplay یک شی از نوع Display که همان صفحه نمایش دستگاه باز است را برمیگرداند سپس با استفاده از طول و عرض آن میتوان جهت دستگاه را مشخص نمود.

کنترل جهت نمایش

گاهی اوقات تمایل دارید که برنامه شما تنها در یک جهت نمایش و اجرا شود برای این کار نیز میتوان از متد ()setRequestOriention کلاس اکتیویتی به شکل زیر استفاده کرد

قطعه کد فوق صفحه دستگاه را به صورت عمودی نمایش میدهد. برای نمایش در حالت افقی نیز از عبارت زیر استفاده میکنیم

راه دیگری نیز برای تعیین جهت صفحه نمایش وجود دارد بدین ترتیب که در فایل manifest برنامه با استفاده از خصوصیت android:screenOrientation چنین تغییری ایجاد کنیم

کد بالا اکتیویتی را به صورت عمودی نمایش میدهد(landscape  نیز برای حالت افقی و Sensor براساس سنسور شتاب سنج صفحه بکار میرود که به صورت پیش فرض از Sensor استفاده میشود) و از نابود شدن اکتیویتی جلوگیری میکند این بدین معناست که اکتیویتی با چرخش صفحه از بین نمیرود و نیازی به فراخوانی مجدد متد ()onCreate نیست.

مدرس : خانم مهندس داودی نژاد

آموزش اندروید فصل سوم قسمت پنجم

آموزش اندروید فصل سوم قسمت هفتم

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

مطالب مرتبط

نظر بدهید

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