آموزش برنامه نویسی اندروید (Android)
۴۱۹ آموزش
نمایش دسته بندی ها (۴۱۹ آموزش)

اجرای یک سری دستور، تنها یک بار (تنها در اولین اجرای برنامه، بعد از نصب برنامه اندروید)

ممکن است بخواهیم که یک سری دستور، تنها یک بار در برنامه اندروید اجرا شوند. مثلا می توانیم بعد از نصب برنامه اندروید و در اولین اجرای برنامه اندروید، توسط کاربر، یک پیام را به کاربر نمایش بدهیم، ولی در دفعات بعد، هیچ پیامی نمایش داده نشود. البته این تنها یک کاربرد است و شیوه کلی که در این مبحث آموزش می دهیم، برای اجرای یک سری دستور، تنها یک مرتبه، می باشد و فرقی ندارد که دستورات، در کجای برنامه به کار رفته باشند یا اینکه کی کاربر، به activity حاوی آن دستورات، وارد شود.

روشی که ما به کار می بریم، بر اساس SharedPreferences می باشد.

ابتدا یک کلاس با نام Prefs می سازیم (ساخت فایل Prefs.java). این کلاس باید حاوی کدهای زیر باشد :


public class Prefs extends PreferenceActivity {
   
    @Override
    protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
            Boolean b = prefs.getBoolean("FIRSTRUN", true);
    }

}

سپس باید فایل AndroidManifest.xml را باز کرده و خط زیر را به آن اضافه کنیم (بعد از آخرین تگ activity) :


<activity android:name=".Prefs"></activity>

اکنون، در آن activity که قصد داریم، یک سری دستور، تنها یک مرتبه اجرا شوند، کدهای زیر را می نویسیم :


final SharedPreferences shared = getSharedPreferences("Prefs", MODE_PRIVATE);
final SharedPreferences.Editor editor = shared.edit();
boolean isFirstRun = shared.getBoolean("FIRSTRUN", true);
if (isFirstRun){
    // Code to run once
    editor.putBoolean("FIRSTRUN", false);
    editor.commit();   
}

سپس کدهایی که می خواهید تنها یک بار اجرا شوند را به جای عبارت // Code to run once بنویسید.

همین کد بالا، پاسخگوی نیاز شما است، اما بد نیست نکته زیر را در مورد SharedPreferences بدانید :

دقت داشته باشید که به جای editor.commit(); می توان از editor.apply(); استفاده نمود، این گزینه دوم، در برخی موارد که چندین بار، در یک activity ، از SharedPreferences مقدار خوانده و در آن نوشته ایم، می تواند عملکرد مورد نظر ما را صحیح تر اجرا کند. انتخاب بین این دو، بستگی به کدهای activity دارد. شما ابتدا از editor.commit(); استفاده کنید و اگر مشاهده کردید که مقادیر جدیدی که در SharedPreferences ذخیره می کنید، جایگزین مقادیر قبلی نشده اند، آنگاه از editor.apply(); استفاده نمایید. دقت داشته باشید که برای استفاده از editor.apply(); باید حداقل شماره minSdkVersion در فایل AndroidManifest.xml را به 9 تغییر دهید که باعث می شود، برخی گوشی ها با برنامه شما سازگار نباشند.

نکته

اگر با پیام خطایی مبنی بر عدم شناسایی MODE_PRIVATE مواجه شدید، آن خط از کدها را مشابه کد زیر بنویسید :


final SharedPreferences shared = getActivity().getSharedPreferences("Prefs", Context.MODE_PRIVATE);

یا به شکل زیر :


final SharedPreferences shared = myContext.getSharedPreferences("Prefs", Context.MODE_PRIVATE);

در کد بالا، myContext را باید به شکل صحیح بسازیم (از جنس Context).

نویسنده علیرضا گلمکانی
شماره کلید 250
گزینه ها
به اشتراک گذاری (Share) در شبکه های اجتماعی
نظرات 5 5 0
محمد
۱۳۹۵/۰۴/۰۶
۰۴:۰۲

عاااااااااااااااااااااااااالیییییییییییییییییییییییییییییییی

داود
۱۳۹۶/۰۲/۱۵
۱۵:۲۸

ممنون... خیلی بدردم خورد...

سجاد
۱۳۹۸/۰۶/۲۶
۱۱:۳۹

سلام
اون قسمتی که گفتین کدی رو که میخواین برای یکبار اجرا بشه رو در قسمت if بذارید من میخوام xml همون اکتیویتی اجرا بشه باید چه کدی رو بزنم؟!

A.l.i
۱۳۹۹/۱۱/۳۰
۱۱:۴۳

سلام
چطوری اطلاعات ثبت نامی کاربران را در یک فایل برای خودم ذخیره کنم بدون آنکه دیگران دسترسی به آن داشته باشند؟!
ممنونم

رضا
۱۴۰۰/۰۲/۱۶
۰۰:۲۷

باید برنامه رو آنلاین بنویسی یعنی باید به دیتابیس وصل باشه

ارسال نظر جدید (بدون نیاز به عضو بودن در وب سایت)