2010-10-04 86 views
1

我试图在用户更新(或者,我想,安装)我的应用程序时创建“新增功能”弹出式对话框。我有以下几点逻辑来检查最后安装的版本是否将其与当前版本进行比较,然后将当前版本保存为“最后”版本(这是在我的“第一个”的onCreate()的末尾调用的“Activity):Android偏好设置不保存

int lastVersion = getPreferences(MODE_PRIVATE).getInt(LAST_VERSION, 34); 
    try { 
     int currentVersion = getPackageManager().getPackageInfo(getPackageName(), 0).versionCode; 

     Log.d(getClass().getSimpleName(), "Old Version = " + lastVersion); 
     Log.d(getClass().getSimpleName(), "New Version = " + currentVersion); 

     if (currentVersion != lastVersion) { 
      // write the current version to the preferences so they won't see the popup again 
      getPreferences(MODE_PRIVATE) 
       .edit() 
       .putInt(LAST_VERSION, lastVersion) 
       .commit(); 

      // tell the user the new thing 
      AlertDialog dia = new AlertDialog.Builder(this) 
       .setTitle(R.string.main_menu_new_title) 
       .setMessage(R.string.main_menu_new_body) 
       .create(); 
      dia.show(); 
     } 
    } catch (NameNotFoundException ex) {}   

的问题是,无论多少次,我跑的应用程序,我总是得到的默认值lastVersion,使弹出总是会发生的。想法?

回答

2

您正在编写旧的版本号返回到首选项。

变化:

getPreferences(MODE_PRIVATE) 
       .edit() 
       .putInt(LAST_VERSION, lastVersion) 
       .commit(); 

到:

getPreferences(MODE_PRIVATE) 
       .edit() 
       .putInt(LAST_VERSION, currentVersion) 
       .commit(); 
+0

哦jeeze ......深夜。谢谢。 – 2010-10-04 12:43:14