2016-11-17 157 views
0

所以我想知道如果你可以檢查在Android中安裝應用程序時,如果這個安裝是新鮮的(意味着當前沒有安裝在應用程序上的舊版本的應用程序),或者它不是新鮮的(意思是當前有設備上安裝的應用程序的舊版本,這只是一個更新版本)。Android:您可以檢查應用程序安裝是否新鮮或已安裝應用程序的舊版本?

我想做點什麼,但前提是安裝是新鮮的,而且沒有在設備上安裝舊版本。如果安裝了這樣的舊版本 - >什麼都不應該執行。正在尋找像SystemUtils和東西,但我找不到任何東西。

+0

在運行應用程序時查看是否有任何數據。如果您有數據,則安裝了以前版本的應用程序。 – CommonsWare

回答

0

這不是一個理想的解決方案,千方百計解決您的問題。 1.在應用中創建本地數據庫,存儲版本號和日期 2.在應用啓動時或第一次啓動時計算這兩個字段 3.如果版本號與已存在的最後一個相同在db中輸入,然後用新的日期覆蓋日期; 4.所以現在當你更新應用程序,你可以檢查這個版本號與您當前的版本號,如果它不匹配,是新的,那麼你可以知道它的新版本

0

這是一些示例代碼,檢查你是否已安裝應用程序的更新版本:

private boolean showHelpOnFirstLaunch() { 
    try { 
     PackageInfo info = getPackageManager().getPackageInfo(PACKAGE_NAME, 0); 
     int currentVersion = info.versionCode; 
     SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); 
     int lastVersion = prefs.getInt(PreferencesActivity.KEY_HELP_VERSION_SHOWN, 0); 
     if (currentVersion > lastVersion) { 
      //save the current version in order to compare it the next time a newer version is installed 
      prefs.edit().putInt(PreferencesActivity.KEY_HELP_VERSION_SHOWN, currentVersion).commit(); 
      /* do what you want here */ 
      return true; 
     } 
    } catch (PackageManager.NameNotFoundException e) { 
     Log.w(TAG, e); 
    } 
    return false; 
} 

PreferencesActivity是我的項目的活動,但它是一個靜態引用解析爲:public static final String KEY_HELP_VERSION_SHOWN = "preferences_help_version_shown";

什麼你問的是要簡單得多,你可以只檢查如果存在lastVersion>0。如果不是這意味着它是該設備上第一次安裝該應用程序

相關問題