ذخیره‌سازی داده‌ها در برنامه‌های اندروید(قسمت اول)

ذخیره‌سازی در تلفن همراه

به چند روش می‌توان داده‌های خود را در برنامه‌هایی که برای اندروید می‌نویسیم ذخیره کنیم. در زیر این روش‌ها را بررسی می‌کنیم.
کد خبر: ۴۳۴۱۰۶

Shared Preferences

در این روش شما می‌توانید داده‌های اولیه خود را در یک Dictionary که یک ساختار Key-Value (کلید مقدار) است ذخیره کنید، در این شیوه ذخیره‌سازی داده‌ها شما 2 String را در Dictionary قرار می‌دهید، به صورت زیر:

public class Calc extends Activity {
public static final String PREFS_NAME = ''MyPrefsFile'';
@Override
protected void onCreate(Bundle state){
 super.onCreate(state);
 SharedPreferences settings = getSharedPreferences(PREFS_NAME، 0);
 boolean silent = settings.getBoolean(silentMode، false);
 setSilent(silent);
}
@Override
protected void onStop(){
 super.onStop();
SharedPreferences settings = getSharedPreferences(PREFS_NAME،
0);
SharedPreferences.Editor editor = settings.edit();
editor.putBoolean(silentMode، mSilentMode);
‌/‌‌/‌ Commit the edits!
editor.commit();
}
}

در کد بالا 2 قسمت وجود دارد که نیاز به توضیح دارد، ابتدا شما با استفاده از متد getSharedPrefrences یک شیء از نوع SharedPrefrences دریافت می‌کنید. برای بازیابی این مقدار شما یک رشته که نام SharedPrefrences را مشخص می‌کند و یک عدد صحیح که مربوط به وضعیتی است که این شیء چگونه در دسترس باشد، به طور مثال MODE_PRIVATE مشخص می‌کند شیء Sharedprefrences فقط در اختیار برنامه‌ای که آن را فراخوانی کرده قرار بگیرد یا برنامه‌هایی که با یک ID‌ مشخص بتوانند به آن دسترسی پیدا کنند.

در بخش بعدی مقدار silentMode را بازیابی می‌کنیم، این مقدار از نوع Boolean است ؛ پس با استفاده از متد getBoolean آن را بازیابی می‌کنیم. این متد 2 پارامتر می‌گیرد: اولی مشخص کننده کلید یا همان Key در Dictionary است و یک مقدار پیشفرض که در صورت نبودن چنین کلیدی در داده‌‌ها، این مقدار پیشفرض را برمی‌گرداند.

حالا در متد onStop مقدار silentMode را ویرایش می‌کنیم. باز همان ترتیب قبلی است، اما نیاز به یک شیء Sharedprefrences.Editor داریم که بتوانیم با استفاده از آن داده‌های موجود در SharedPrefrences را ویرایش کنیم. با متد edit کلا SharePrefrences می‌توانیم به آن دسترسی پیدا کنیم، سپس با استفاده از مقدار putBoolean مقدار silentMode را به‌روزرسانی کنیم. دقت داشته باشید اگر مقدار silentMode وجود نداشته باشد، یک مدخل جدید برای آن ایجاد می‌شود و مقدار mSilentMode در آن قرار داده می‌شود.

سپس با استفاده از متد commit تغییرات را اعمال می‌کنیم.

برای اطلاعات بیشتر به نشانی یک مراجعه کنید.

Internal Storage

در این روش شما برای ذخیره‌سازی داده‌های خود از فایل استفاده می‌کنید. این فایل‌ها در حافظه خود گوشی ذخیره می‌شود. پس باید حواستان باشد که حافظه گوشی شما محدود است و ذخیره‌سازی حجم عظیمی از داده‌ها در دیتابیس ممکن است برای شما مشکل به وجود بیاورد.

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

String FILENAME = ''hello_file'';
String string = hello world!;
FileOutputStream fos = openFileOutput(FILENAME، Context.MODE_PRIVATE);
fos.write(string.getBytes());
fos.close();

در بخش اول، یک فایل به اسم hello_file نیاز داریم و می‌خواهیم مقدار hello world! را در آن ذخیره‌سازی کنیم.

با استفاده از FileOutputStream داده‌های خود را در فایل ذخیره می‌کنیم. سپس با استفاده از متد write داده‌های خود را به صورت یک ارائه از byte‌ها در فایل ذخیره می‌کنیم، سپس با استفاده از متد close فایل مورد نظر را می‌بندیم. این کار را برای این انجام می‌دهیم که فایل ساخته شود و هندل (دستگیره) فایل که توسط سیستم عامل باز شده‌است بسته و داده‌ها در حافظه داخلی نوشته شود ( به معنی اتمام کار با فایل است).

امیربهاءالدین سبط‌الشیخ

منابع:

http:‌/‌‌/‌developer.android.com‌/‌reference‌/‌android‌/‌content‌/‌SharedPreferences.html ـ1

newsQrCode
ارسال نظرات در انتظار بررسی: ۰ انتشار یافته: ۰

نیازمندی ها