2011-10-14 50 views
0

我试图设置一个对话框,将在用户更新或第一次安装应用程序后弹出。我无法弄清楚如何完全做到这一点。目前我已经尝试使用包管理器来获取用户版本并比较它是否最新。我不确定这是否会成为难以测试依赖于软件包更新的测试。这里是我的代码:Android:更新对话框与共享首选项

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(); 
    } 

} 

回答

1

我认为你是在正确的轨道上,有许多解决方案herehere,可能会给你的想法。

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

+0

改变国旗的想法是我用过的,它很棒!不错的建议:) – Nick