当应用程序更新时,下一次启动被视为第一次运行?

时间:2015-10-13 15:51:59

标签: android sharedpreferences updates

假设应用程序检查开始是否是她的第一次运行,使用以下代码:

public class MyActivity extends Activity {

SharedPreferences prefs = null;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    // Doing things

    prefs = getSharedPreferences("com.example.myAppName", MODE_PRIVATE);
}

@Override
protected void onResume() {
    super.onResume();

    if (prefs.getBoolean("firstrun", true)) {
        // Do first run stuff here then set 'firstrun' as false
        // using the following line to edit/commit prefs
        prefs.edit().putBoolean("firstrun", false).commit();
    }
}}

现在假设此应用程序通过Google Play更新,当应用程序再次运行时,该代码会将其视为首次启动? Sahred首选项在更新过程中被删除了吗?

感谢您的时间,

弗拉格。

3 个答案:

答案 0 :(得分:1)

我会将您的应用版本存储在sharedPreferences中(而不是布尔值)。然后将最后存储的数据与当前存储的数据进行比较。

PackageInfo pInfo = getPackageManager().getPackageInfo(getPackageName(), 0);
String currentVersion = pInfo.versionName;
if (prefs.getString("lastVersion", "0").equals(currentVersion)) {
        // Do first run stuff here then set 'firstrun' as false
        // using the following line to edit/commit prefs
        prefs.edit().putString("lastVersion", currentVersion).apply();
    }

see also

答案 1 :(得分:1)

您的SharedPreferences将通过应用更新保留。因此,您应该能够使用新版本获取上次存储的值。

答案 2 :(得分:1)

你问题的答案;是SharedPreference通过更新持续存在。只有在用户卸载应用程序或删除应用程序时才会删除它们。