با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن . و تمامی کاربرانی که دوره کامل آموزشی برنامه نویسی اندروید را دنبال می کنند. تا الان به طور کامل با مباحث resource ها و چگونگی دسترسی به آن ها در Android Studio ، آشنا شدید. در این بخش قصد داریم به موضوع تغییر دادن تنظیمات پیکربندی Android Studio ، بپردازیم.
برخی از تنظیمات دستگاه می توانند در طول زمان اجرا تغییر کنند (مانند جهت گیری روی صفحه، در دسترس بودن صفحه کلید و زمانی که کاربر حالت چند پنجره ای را فعال می کند). در چنین مواقعی اندروید برنامه را دوباره راه اندازی می کند تا برنامه با تنظیمات جدید سازگار شود. در این بخش با چگونگی دستکاری این تنظیمات، آشنا خواهید شد.
شما می توانید برای بازیابی فعالیت خود در طول تغییر کردن تنظیمات از اشیای ()onSaveInstanceState
و ViewModel
استفاده کنید.
شما باید برای اینکه فعالیت شما درطول تغییر تنظیمات دچار مشکل نشود. از اشیای فوق برای این منظور استفاده کنید.
با این حال،بازهم ممکن است با وضعیتی روبه رو شوید. که برنامه شما مجددا راه اندازی شود.
برای جلوگیری از مشکلات فوق، شما می توانید از دو گزینه استفاده کنید:
۱- نگه داشتن یک شی در طول تغییرات پیکربندی
۲-خوتان تنظیمات پیکربندی برنامه را تغییر دهید.
این گزینه به علت پیچیدگی تنظیمات پیکربندی ، توصیه نمی شود.
استفاده از این گزینه، با استفاده از اشیای ()onSaveInstanceState
و ViewModel
امکان پذیر است.
این گزینه برای نگهداری اطلاعات زیاد، استفاده نمی شود.
اگر برنامه شما نیازی به به روز رسانی منابع در یک تغییر خاص تنظیمات را نداشته باشد.می توانید اعلام کنید که فعالیت شما با تغییر تنظیمات خود تغییر کند. و مانع از راه اندازی مجدد سیستم شما می شود .
برای این منظور باید عنصر <activity>
را در فایل مانیفست برنامه، که شامل صفت android:configChanges
می شود. را تغییر دهید.
مقادیری که معمولا برای صفت android:configChanges
استفاده می شود، شامل مقدارهای زیر می شود:
“orientation
” : هنگامی که جهت صفحه نمایش جدید تغییر می کند. از راه اندازی مجدد برنامه جلوگیری می کند.
“screenSize
” : هنگامی که جهت گیری و اندازه صفحه تغییر می کند از راه اندازی مجدد برنامه جلوگیری می کند.
“keyboardHidden
” : هنگامی که کاربر از صفحه کلید دستگاه، استفاده می کند.از راه اندازی مجدد برنامه جلوگیری می کند.
مثال:
کد مانیفست زیر برای هر دو حالت تغییر اندازه صفحه و دسترسی کاربر به صفحه کلید، از راه اندازی مجدد برنامه جلوگیری می کند:
1 2 3 | <activity android:name=".MyActivity" android:configChanges="orientation|keyboardHidden" android:label="@string/app_name" |
تشریح مثال فوق:
حالا، وقتی یکی از این تنظیمات تغییر می کند، MyActivity
دوباره راه اندازی نمی شود.
در عوض، MyActivity
با ()onConfigurationChanged
ارتباط گرفته و تنظیمات جدید را دریافت می کند.
مثال ۲: برنامه زیر در ()OnConfigurationChanged
، دستورالعمل فعلی دستگاه را بررسی می کند:
1 2 3 4 5 6 7 8 9 10 11 | @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); // Checks the orientation of the screen if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) { Toast.makeText(this, "landscape", Toast.LENGTH_SHORT).show(); } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){ Toast.makeText(this, "portrait", Toast.LENGTH_SHORT).show(); } } |
شی Configuration
تمام تنظیمات فعلی را نشان می دهد.
می توانید برای تمام تنظیمات پیکربندی خود، جایگزین هایی را مشخص کنید.
برای مثال شما می توانید هر شی ImageView
را با استفاده از setImageResource()
مجددا تنظیم کنید.
در این قسمت ، شما با چگونگی تغییر دادن تنظیمات پیکربندی Android Studio ، برای جلوگیری از Refresh شدن اطلاعات صفحه، در حین تغییر کردن تنظیمات، آشنا شدید. امیدواریم که آموزش فوق مورد استفاده شما قرار گرفته باشد.