假设应用程序检查开始是否是她的第一次运行,使用以下代码:
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首选项在更新过程中被删除了吗?
感谢您的时间,
弗拉格。
答案 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();
}
答案 1 :(得分:1)
您的SharedPreferences
将通过应用更新保留。因此,您应该能够使用新版本获取上次存储的值。
答案 2 :(得分:1)
你问题的答案;是SharedPreference通过更新持续存在。只有在用户卸载应用程序或删除应用程序时才会删除它们。