2010-10-04 118 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