SharedPreferences: কী-ভ্যালু স্টোরেজের الأساسي
SharedPreferences একটি লাইটওয়েট কী-ভ্যালু স্টোরেজ, যা ছোট ডেটা (সেটিংস, ইউজার প্রেফারেন্স, টোকেন) সংরক্ষণের জন্য আদর্শ। এটি XML ফাইলে ডেটা সংরক্ষণ করে।
প্রধান মেথডগুলো
| মেথড | বর্ণনা |
|---|---|
edit() | Editor অবজেক্ট রিটার্ন করে (লিখতে ব্যবহৃত)۔ |
putString(key, value) | স্ট্রিং সংরক্ষণ। |
putInt/Boolean/Float/Long/Set | অন্যান্য টাইপ। |
apply() | অ্যাসিঙ্ক্রোনাস কমিট (প্রিয়)। |
commit() | সিঙ্ক্রোনাস কমিট (বুলিয়ান রিটার্ন)। |
getString(key, defValue) | পড়া (ডিফল্ট ভ্যালু দিন)। |
remove(key) | নির্দিষ্ট কী মুছে ফেলা। |
clear() | সব মুছে ফেলা। |
ব্যবহার উদাহরণ
// লিখা
SharedPreferences prefs = getSharedPreferences("USER", MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
editor.putString("name", "Rahim");
editor.putInt("age", 25);
editor.apply();
// পড়া
String name = prefs.getString("name", "Unknown");
int age = prefs.getInt("age", 0);
MODE_PRIVATE vs অন্যান্য
MODE_PRIVATE(ডিফল্ট) — শুধু আপনার অ্যাপ এক্সেস করতে পারে।MODE_WORLD_READABLE/WRITABLE— **ডিপ্রিকেট** (সুরক্ষা ঝুঁকি)।
সীমাবদ্ধতা
- বড় ডেটা/কমপ্লেক্স অবজেক্টের জন্য উপযোগী নয়।
- কোয়েরি/ইন্ডেক্সিং সাপোর্ট নেই।
- সিনক্রোনাস আপডেটের রেস কন্ডিশন হতে পারে (Multi-process এ)।
বিকল্প: DataStore (Preferences/DataStore), Room Database, Jetpack Security (EncryptedSharedPreferences)।