アプリケーションをアップデートした時にメッセージを出す
|初回起動時に1度だけダイアログを出す方法ではアプリケーションの初回起動時にダイアログを出す方法を紹介しました。
今回は、アプリケーションをアップデートした時に処理を行う方法を紹介します。
アップデートした際のリリースノートの表示や、新規Helpの表示などに活用出来ることと思います。
アップデートの際に処理を行う事は、TechBoosterで過去に取り扱っている、以下記事を組み合わせることで実現できます。
詳細は続きからどうぞ。
アプリケーションがアップデートした時に処理を行う為に、以下手順を踏みます。
- アプリケーションのバージョン情報を取得する
- バージョン情報をSharedPreferenceで管理する
- 管理されているバージョン情報(旧)と、最新のPackageのバージョン情報を比較する
これらのテクニックはそれぞれ、上記に挙げたリンク先で紹介されています。
不明点があれば、そちらも参考にしてみてください。
1.バージョン情報を取得し、SharedPreferenceで管理する
まずは、バージョン情報を取得する処理です。
SharedPreferenceに対し、保持しているバージョン情報(旧)を要求。
その後、最新のバージョン情報を取得しています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | //SharedPreferenceの設定 SharedPreferences sp = PreferenceManager .getDefaultSharedPreferences( this ); SharedPreferences.Editor editor = sp.edit(); int vCode = sp.getInt( "VersionCode" , 1 ); String vName = sp.getString( "VersionName" , "1.0" ); //最新のバージョン情報を取得する PackageInfo pi = null ; try { pi = getPackageManager().getPackageInfo(getPackageName(), PackageManager.GET_META_DATA); } catch (NameNotFoundException e) { e.printStackTrace(); } //最新のバージョン情報をPreferenceに保存 editor.putInt( "VersionCode" ,pi.versionCode); editor.putString( "VersionName" ,pi.versionName); editor.commit(); |
2.最新のバージョンと比較し、アップデートを検知する
AndroidMarketでは、アプリケーションのバージョンアップの際には必ずVersionCodeを変更する必要があります。
その点に着目し、管理している(Preferenceに保存している旧)VersionCode/VersionNameと最新の差異を比較しています。
下記ソースコード内、Toastを表示させている箇所がアップデート時に処理を行っている箇所となります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | if (pi != null ) { // VersionCode でVersionUPを判断する if (pi.versionCode > vCode) { //VersionCodeが上がっている場合 Toast.makeText( this , "Version Up @VersionCode Change to" +Integer.toString(pi.versionCode), Toast.LENGTH_LONG).show(); } // VersionName でVersionUPを判断する if (!pi.versionName.equals(vName)) { //VersionNameが異なる場合 Toast.makeText( this , "Version Up @VersionName Change to " +pi.versionName, Toast.LENGTH_LONG).show(); } } |
![]() アップデートされたって判断したら必要な処理の実施と現在のバージョンコードの保存をしておくんだ。これで次のアップデートまで処理は行われないよね!」 |
2 Comments