آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

نمایش پیام خوش آمدگویی برای ورژن های جدید به کمک preference (مثل اجرای بار اول برنامه) ???

ahmad_r  12 سال پیش  12 سال پیش
+2 0

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

چطور می توان بعد از نصب ورژن جدید برنامه، مثل اجرای اول پیام خوش آمد گویی را نمایش داد؟؟

چراکه preference ها پاک نمیشن و اون کلید ساخته شده موجود است و برنامه ورژن جدید را هم به عنوان اجرای دوم به بعد در نظر میگیرد.

 برای این سوال 2 پاسخ وجود دارد.
پاسخ به سوال 
Spirit  12 سال پیش
+4 0

برای این کار key مربوط به preference ما باید متغیر باشه یعنی در هر ویرایش از برناممون فرق کنه ، که اگر دقت کنید مناسب ترین مورد برای ما versionCode در فایل manifest هستش ، که در هر نسخه از برنامه یه عدد متفاوت و بزرگتر از قبلی هستش.

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

public int getVersion() {
int v = 0;
try {
v = getPackageManager().getPackageInfo(getPackageName(), 0).versionCode;
} catch (NameNotFoundException e) {
e.printStack();
}
return v;
}

اینجوری هم میشه استفاده کرد ازش :

boolean firstTime = prefs.getBoolean("first_time" + String.ValueOf(getVersion()), false);
پاسخ به سوال 
sadeghbarout  12 سال پیش
+4 0

همین راه spirit عزیز خوبه فقط به نظرم اصولی تر اینه که این مقدار ورژن رو توی یه preference ذخیره کنیم و چک کنیم که آیا مقدار این preference ما از مقدار ورژن فعلی پایین تره یا نه:

 public boolean checkVersion() {
    int v = 0;
    try {
        v = getPackageManager().getPackageInfo(getPackageName(), 0).versionCode;
    } catch (NameNotFoundException e) {
	e.printStack();
    }

int lastVersion= prefs.getInt("version", 0);
if( lastVersion<v){
return true;
}else{
return false;
}

}
 

 حالا مثلا جواب میاد true پس یعنی ورژن جدیده پس کارهایی که میخواستی رو انجام میدی

فقط یادت نره که حتما بعدش مقدار v رو توی اون کلید version ذخیره کنی

اینجوری از تعدد کلید ها جلوگیری میشه 

 

0 0
you are right (12 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .