我需要在初始化时为其关联的持久存储数据设置一些值(如果存在)。如果不是,我需要初始化它们。在第一次运行时使用 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?
最佳答案
是的,这是完全可以接受的。为了整洁起见,将键和默认值定义为常量可能会更好,但您所采用的方法可以正常工作。
关于Android 第一次使用变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26237217/