在共享首选项中使用 apply() 和 commit()


sharedPreferencesEditor.putStringSet("Saved", set).apply();
                sharedPreferencesEditor.commit();
                if(sharedPreferencesEditor.commit()){
                    Toast.makeText(BankActivity.this, "Saved Successfully", Toast.LENGTH_SHORT).show();
                }

共享首选项中同时使用 apply() 和 commit() 方法来定期更改文本是否更好?

  • commit() 是瞬时的,但执行磁盘写入。
  • commit() - 返回布尔值。
  • commit() 如果保存有效,则返回 true,否则返回 false 并阻塞UI 线程,直到完成操作。
  • 添加 apply() 是因为 android 开发团队注意到大多数人都没有注意到了返回值,因此应用速度更快。
  • apply() 是异步的。

不,你应该其中一个。这真的取决于你在做什么,但一般来说你想使用 .apply() .

.apply()稍后会在后台应用您的更改;而.commit()将立即在当前线程上应用您的更改。

因此,如果您需要立即保存某些内容,并且不介意阻止UI线程,则可以使用 .commit() ,但.apply()在95%的情况下会更好地工作。

最新更新