تماس با ما

موبایل: 2565 038 0912

دفتر تهران: 2565 2842 021

دفتر گرگان: 2565 3233 017


 ممکن است بخواهیم که یک سری دستور، تنها یک بار در برنامه اندروید اجرا شوند. مثلا می توانیم بعد از نصب برنامه اندروید و در اولین اجرای برنامه اندروید، توسط کاربر، یک پیام را به کاربر نمایش بدهیم، ولی در دفعات بعد، هیچ پیامی نمایش داده نشود. البته این تنها یک کاربرد است و شیوه کلی که در این مبحث آموزش می دهیم، برای اجرای یک سری دستور، تنها یک مرتبه، می باشد و فرقی ندارد که دستورات، در کجای برنامه به کار رفته باشند یا اینکه کی کاربر، به 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).


سفارش طراحی سایت

سفارش طراحی سایت

google
yahoo
alexa
ebook
Baidu.com
Wikipedia
Blogger.com
Windows Live
Amazon.com
eBay
Bing
Ask
استانداری گلستان
f shdj, sefaresh, sefaresh .net, sefaresh.net, sthva, sthva nhj kj, sthva.kj, stthva.kj, xvhpd, آیفون, استفاده, اندروید, اپل, اپلیکیشن, اینترنت, باتری, بازار, دستگاه, دوربین, سامسونگ, سفارش, سفارش دات نت, سفارش دات نت sefaresh.net, سفارش.نت, سیستم, طراح وب, طراحي وب سايت, طراحی, طراحی وب سایت, فناوری, فیسبوک, مایکروسافت, موبایل, هوشمند, کاربران, کمپانی, گلکسی, گوشی, گوشی هوشمند, گوگل

نمایش تمامی تگ ها
بسته ویژه مدارس مدارس
بسته ویژه پزشکان پزشکان
بسته ویژه مهندسین مهندسین