Android:使用共享首选项更新对话框

Android:使用共享首选项更新对话框,android,dialog,sharedpreferences,Android,Dialog,Sharedpreferences,我正在尝试设置一个对话框,在用户第一次更新或安装应用程序后弹出。我不知道该怎么做。目前,我已经尝试使用包管理器获取用户版本,并对其进行比较,以查看其是否为最新版本。我不确定这是否会起作用,因为它很难测试依赖于包更新的东西。这是我的密码: public void firstrun() { String version = ""; String currenver = "3.9"; // update function try { PackageInf

我正在尝试设置一个对话框,在用户第一次更新或安装应用程序后弹出。我不知道该怎么做。目前,我已经尝试使用包管理器获取用户版本,并对其进行比较,以查看其是否为最新版本。我不确定这是否会起作用,因为它很难测试依赖于包更新的东西。这是我的密码:

public void firstrun() {
    String version = "";
    String currenver = "3.9";
    // update function
    try {
        PackageInfo manager = getPackageManager().getPackageInfo(
                getPackageName(), 0);
        version = manager.versionName;
    } catch (NameNotFoundException e) {
        // Handle exception
    }
    getSharedPreferences("PREFERENCE", MODE_PRIVATE).edit()
            .putString(version, version).commit();

    boolean firstrun = getSharedPreferences("PREFERENCE", MODE_PRIVATE)
            .getBoolean("firstrun", true);

    if (version.matches(currenver)) {
        // Save the state
        getSharedPreferences("PREFERENCE", MODE_PRIVATE).edit()
                .putBoolean("firstrun", false).commit();
    } else {
        // Save the state
        getSharedPreferences("PREFERENCE", MODE_PRIVATE).edit()
                .putBoolean("firstrun", true).commit();

    }

    if (firstrun == true) {
        new AlertDialog.Builder(this)
                .setTitle("Welcome!")
                .setIcon(R.drawable.icondialog)
                .setMessage("UpdateText")
                .setNeutralButton("OK", null).show();
    }

}

我认为你走在正确的轨道上,有很多解决方案,可能会给你一些想法


此外,您还可以创建一个数据库表,其中包含提示或不提示的标志。默认情况下,它将设置为要提示的值,然后一旦用户启动并确认对话框,您就可以更改该标志。然后在SQLiteOpenHelper的onUpgrade()方法中,您可以再次翻转标志,这样应用程序就会在安装新版本时提示。

更改标志的想法就是我所使用的,效果非常好!好建议:)