1

我需要在初始化时为其关联的持久存储数据(如果存在)设置一些值。如果没有,我需要初始化它们。在第一次运行时使用 SharedPreference 初始化变量是否有任何缺点。也就是说,像这样:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    SharedPreferences sp = getSharedPreferences("MyDataName", Context.MODE_PRIVATE);
    String name = sp.getString("name", "");
    boolean isFirstRunning = sp.getBoolean("firstTime", true);

    if (isFirstRunning) {
        Toast.makeText(this, "YEA", Toast.LENGTH_LONG).show();

        SharedPreferences.Editor editor = sp.edit();
        editor.putBoolean("firstTime", false);
        editor.commit();
    }

}

如果从处理层面上没有劣势,那么就这种情况而言,是否有标准做法?此外,是否有任何替代方法来处理持久数据,或者我们是否必须为此使用 SharedPreferences?

4

2 回答 2

1

是的,这是完全可以接受的。为了简洁起见,将键和默认值定义为常量可能会更好,但是您使用的方法可以正常工作。

于 2014-10-07T14:13:46.640 回答
0

那是根据你的要求。如果你需要快速共享偏好值,那么你写的很好。其他明智没有用。

于 2014-10-07T14:09:45.040 回答