تابستون داره تموم میشه ها، فرصت‌ها محدودن کلی آفر جذاب در کمپین تابستون🔥👇
۰ ثانیه
۰ دقیقه
۰ ساعت
۲ پوریا شفیعی
registerOnSharedPreferenceChangeListener
سعید شاهینی حل شده توسط سعید شاهینی

استاد وقت بخیر 

سوالی که داشتم این بود که این متد دقیقا کاربردشون چی هست ؟

sharedPreferences.registerOnSharedPreferenceChangeListener(
  sharedPreferences.unregisterOnSharedPreferenceChangeListener(

کاش در اموزش این دو متد رو با مثال توضیح میدادید که با detail بیشتری متوجه شیم.

به عبارتی فهمیدم این متد هر زمان تغییری ایجاد بشه ما رو نوتیفای میکنه ولی کاربردشو در اپلیکیشن متوجه نشدم .

ممنون میشم توضیحی بفرمایید .

و ایا فقط برای sign و تنظیمات از شیرید پرفرنس استفاده کنیم و در بقیه موارد که مروبوط به ذخیره اطلاعات کاربرهست  از Rdbms SqLite استفاده کنیم؟

 

سلام وقت بخیر، من تا به حال تو هیچ کدوم از پروژه هام نشده که به چنین چیزی احتیاج پیدا کنم، داخل ویدیو هم گفتم ممکنه در بعضی شرایط به کار شما بیاد و کافیه بدونید همچین چیزی وجود داره. مثالش مشخصه دیگه، هر زمان که بخواید هنگام تغییر در shared pref با خبر بشید از این اینترفیس می‌شه استفاده کرد

بهترین پاسخ
سعید شاهینی ۰۵ فروردین ۱۳۹۹، ۰۵:۴۵

سلام. 

یه نمونه مثلا، شما از اکتیویتی اول رفتید به اکتیویتی دوم. (با توجه به lifecycle اکتیویتی‌ها در حالت عادی، اکتیویتی اول onPaused میشه و در استک قرار میگیره، بنابراین state اکتیویتی اول از بین نمیره که مجدد ساخته بشه.)

داخل اکتیویتی دوم، shared preference رو آپدیت میکنید. وقتی بک میزنید به اکتیویتی اول(متد onResume صدا زده میشه)، با اینکه مقادیر تغییر کردن ولی مقادیر قبلی shared preference داخل اکتیویتی اول، از قبل لود شده و این اکتیویتی به مقادیر جدید دسترسی نداره.

وقتی با مفهموم registerOnSharedPreferenceChangeListener آشنا باشیم، در همچین موقعیتی این کدو داخل اکتیوی اول میگذاریم که اگر مقادیر shared preference تغییر کرد، بتونیم مدیریتی روی تغییرات داشته باشیم و برای این مثالی که گفتیم در داخل متد، کدهایی بنویسیم که اگر مقادیر آپدیت شد، اکتیویتی هم از آپدیت باخبر بشه.

 

در مورد دیتابیس و shared preference هم، وظایف دیتابیس مشخصه. دیتابیس کار مرتب سازی اطلاعات، خواندن و نوشتن اطلاعات بر اساس شرایط خاص و در کل سازماندهی اطلاعات رو در دست داره و ازونطرف shared preferences یک فایل ساده، با ساختار key/value هست که بیشتر نقش یک فایل کانفیگ رو بازی میکنه.

محسن موحد ۰۵ فروردین ۱۳۹۹، ۱۴:۴۳