开发者

Android Preferences not saving

I'm trying to create a "what's new" pop-up dialog when users update (or, I guess, install) my app. I have the following bit of logic to check that the last installed version was then compare it to the current version, then save the current version as the "last" version (this is called at the end of the onCreate() of my "first" Activity):

    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) {}        

The problem is that no matter how many times I r开发者_开发知识库un the app I always get the default value for lastVersion, so the pop-up ALWAYS happens. Ideas?


You're writing the old version number back to the preferences.

Change:

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

to:

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜