میخوای وارد بازار کار بشی و محصولات خودت رو بفرشی همین الان ثبت نام کن
0

مدیریت configuration و تنظیمات

activity بر اثر تغییر در تنظیمات و وضعیت دستگاه ( configchange ) از بین رفته و جهت تطبیق با تنظیمات جدید و همچنین بارگذاری resource های جدید، دوباره ساخته می شود. تغییر در تنظیمات ممکن است به دنبال یک event که از خود دستگاه اندروید اعلان یا صادر می شود و مربوط به برنامه ی جاری می باشد، اتفاق بیافتد.اطلاعات مربوط به تنظیمات جاری دستگاه در نمونه ای از کلاس Configuration ذخیره می شود. در واقع Configuration یک کلاس است که تمامی اطلاعات مربوط به تنظیمات جاری دستگاه را تعریف می کند

این اطلاعات می توانند منابع و محتوای مورد نیاز اپلیکیشن را تحت تاثیر قرار دهند. کلاس مزبور هم می تواند تنظیمات تعریف شده توسط کاربر (همچون locale list و scaling = مقیاس بندی به صورت پویا) را شامل شود و هم تنظیمات دستگاه نظیر حالت دریافت ورودی ( input mode ) اندازه ی صفحه یا وضعیت و جهت نمایش.

به عنوان مثال زمانی که کاربر با چرخاندن دستگاه، وضعیت نمایش و چیدمان را تغییر می دهد (از نمای عمودی به افقی تغییر می دهد)، در این هنگام سیستم اندروید متوجه می شود که activity جهت تطبیق با شرایط جاری، لازم به بارگذاری منابع جدید دارد. از اینرو activity کنونی را نابود کرده و بار دیگر با تنظیمات جدید آن راه اندازی می کند.

هنگامی که activity نابود و مجدد ساخته می شود، برنامه نویس می بایست اطمینان حاصل کند که نمونه ی جدید activity با اطلاعات مربوط به وضعیت قبلی ایجاد و بارگذاری شود. سیستم اندروید ابزار و روش های مختلفی برای این منظور ارائه می دهد. در محیط emulator می توانید با فشردن کلیدهای Ctrk+F11 به راحتی تغییر در وضعیت و جهت نمایش را شبیه سازی نمایید.

می توانید activity را طوری در فایل XML تعریف کنید که نسبت به برخی از تغییرات در وضعیت و تنظیمات بی تفاوت باشد و به تبع از راه اندازی مجدد activity در موارد مزبور جلوگیری نمایید. کافی است در فایل تنظیمات AndroidManifest.xml خود، داخل تگ activity ، خصیصه (attribute )  configChanges را با مقدار مربوطه تنظیم نمایید.
Activity زیر طوری تنظیم شده که در صورت رخداد تغییر در وضعیت نمایش یا موقعیت صفحه کلید (قابل مشاهده/پنهان،) از نو راه اندازی نشود و به بیانی دیگر نسبت به این تغییرات بی تفاوت باشد.

 

<activity android:name=".ProgressTestActivity"
android:label="@string/app_name"
android:configChanges="orientation|keyboardHidden|keyboard">
</activity>

توجه: بهتر است برای مدیریت تغییر در تنظیمات ، بجای attribute فوق از روش های دیگر نظیر فریم ورک loader یا fragment های فاقد headless fragments) UI ) استفاده نمایید. در آینده به شرح مفاهیم نام برده خواهیم پرداخت.

 


ثابت کردن وضعیت نمایش (orientation) یک activity

این امکان برای شما وجود دارد که activity را در فایل تنظیمات AndroidManifest.xml طوری تعریف کنید که فقط در یک وضعیت یا نمای ( )orientation خاص نمایش داده شود. برای مثال فایل XML زیر یک activity تعریف کرده که تنها در حالت و نمای افقی ( )landscape به کاربر نشان داده می شود.

 

<activity
android:name="com.vogella.android.multitouch.MainActivity"
android:label="@string/app_name"
android:screenOrientation="landscape" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

 


امیدواریم آموزش مدیریت configuration و تنظیمات نیز برای شما مفید واقع شده باشد و ادامه آموزش برنامه نویسی اندروید رو دنبال کنید . برای مطالعه پست‌ها بیشتر ، ما را در مدرسه کدنویسی تلگرام  و یا در تی جوان اینستاگرام دنبال کنید.

نظراتتون رو زیر همین پست با ما به اشتراک بگذارید.

 

ارسال دیدگاه

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

×

سلام کاربر عزیز

هر سوالی دارید در این بخش هستیم تا شما رو راهنمائی کنیم

روی لوگومون کلیک کنید

× چطور میتونم کمکتون کنم؟