2011-05-06 77 views

回答

2

爲此做一個活動,檢查一個首選項是否具有當前版本的值。如果是這樣,繼續下一個活動。否則,在當前版本的首選項中,顯示新的屏幕,然後按按鈕進入下一個活動

+0

如何在運行時獲取我的版本號? – 2011-05-06 11:28:59

+1

將其編碼爲常量。或者向PackageManager詢問你的軟件包的元數據。見例如http://osdir.com/ml/Android-Developers/2010-01/msg03487.html – 2011-05-06 12:35:59

0

這很簡單。 在第一次啓動時顯示AlertDialog並在SharedPreferences中創建記錄。無論 - 標誌或字符串,或有點。 下一次您的應用程序啓動時,只需檢查您在首選項中是否有此標誌。如果沒有人,那麼這是第一次啓動,是時候顯示一個對話框=)

+0

而且您應該將您的版本號存儲在首選項中,然後您還可以檢測升級[如果(running_version> preferences_stored_version)]。 – 2011-05-06 10:32:25

+0

當我升級軟件並重新安裝時是否會丟失我的偏好?我不這麼認爲 – 2011-05-06 11:27:06

0

你必須保存一個值,你可以在每次啓動時檢查應用程序是否已經啓動。 SharePreferences將是一個選項。或者在數據庫中。

5

我使用了這個。它是由另一個stackoverflow成員張貼我不記得誰。抱歉。從onCreate()調用此代碼

// Show changelog 
    SharedPreferences prefs = getSharedPreferences(PREFS_NAME, MODE_PRIVATE); 
    PackageInfo pInfo; 
    try { 
     pInfo = getPackageManager().getPackageInfo(getPackageName(), PackageManager.GET_META_DATA); 
     if (prefs.getLong("lastRunVersionCode", 0) < pInfo.versionCode) { 
      showDialog(DIALOG_CHANGELOG); 
      SharedPreferences.Editor editor = prefs.edit(); 
      editor.putLong("lastRunVersionCode", pInfo.versionCode); 
      editor.commit(); 
     } 
    } catch (PackageManager.NameNotFoundException e) { 
     Log.e(TAG, "Error reading versionCode"); 
     e.printStackTrace(); 
    } 
0

如果用戶清除設備設置中的應用程序數據,則全部重置。

相關問題