- 相同点:
1.二者都可提交preference的修改数据
2.二者都是原子操作
- 区别:
1.apply没有返回值而commit返回boolean表明修改是否提交成功
2.apply是将修改数据原子提交到内存,而后异步真正提交到硬件磁盘;而commit是同步的提交到硬件磁盘,因此,在多个并发的提交commit的时候,他们会等待正在处理的commit保存到磁盘后在操作,从而降低了效率。而apply只是原子的提交到内容,后面有调用apply的函数的将会直接覆盖前面的内存数据,这样从一定程度上提高了很多效率。
3.apply方法不会提示任何失败的提示。
由于在一个进程中,sharedPreference是单实例,一般不会出现并发冲突,如果对提交的结果不关心的话,建议使用apply,当然需要确保提交成功且有后续操作的话,还是需要用commit的。
相关推荐
当调用`Editor.commit()`时,所有在Editor上的更改才会被持久化到文件中。如果希望在不影响其他线程的情况下进行修改,可以使用`apply()`方法代替`commit()`,它不会立即返回结果,而是异步保存数据。 7. **数据...
`apply()`方法会异步保存更改,而`commit()`方法则是同步的,推荐使用`apply()`以提高性能。 读取SharedPreference中的数据同样简单。例如,读取玩家等级: ```java int playerLevel = sharedPreferences.getInt(...
SharedPreference是Android系统提供的一种轻量级的数据存储机制,它主要用于保存应用的偏好设置或一些简单配置信息,如用户首选项...通过查看和学习这些代码,可以更深入地理解SharedPreference的工作原理和使用方法。
`SharedPreferences`提供了两种操作方式:异步的`edit()`和`commit()`方法,以及同步的`apply()`方法。 **使用步骤** 1. **获取SharedPreference实例**:通常在`Activity`或`Fragment`中,可以通过`getPreferences...
3. **事务操作**:通过SharedPreferences.Editor接口进行数据修改时,通常会执行一系列操作,如put()和remove(),然后通过apply()或commit()方法提交。这两个方法的区别在于apply()是非阻塞的,而commit()是同步的,...
本源码示例主要探讨如何在Android游戏中利用 SharedPreference 实现游戏数据的保存和读取。 SharedPreference 工作原理是基于 XML 文件,这些文件存储在设备的内部存储区域,每个应用都有自己的 SharedPreference ...
// 提交编辑,apply()或commit()都是保存操作,但apply()是异步的,更推荐使用。 ``` 3. 读取SharedPreferences:通过SharedPreferences对象的getString(), getInt(), getBoolean()等方法获取数据。 ```java int ...
使用`edit()`方法获取到`SharedPreferences.Editor`对象,然后调用`putXXX()`方法(XXX可以是String, int, boolean等)存入键值对,最后通过`commit()`或`apply()`提交更改。例如: ```java SharedPreferences....
4. 数据一致性:`commit()`和`apply()`的区别在于前者是同步操作,后者是异步,推荐使用`apply()`以提高性能,除非需要立即知道操作是否成功。 五、最佳实践 1. 尽可能减少SharedPreferences的使用,因为它并不适合...
总之,SharedPreference是Android开发中常用的一种存储简单数据的方法,它提供了方便快捷的方式来保存和恢复用户设置,使得应用能够记住用户的状态和偏好,提升了用户体验。在学习和使用过程中,理解其工作原理和...
2. **编辑SharedPreference**:使用`edit()`方法创建一个`SharedPreferences.Editor`对象,它是进行实际写入操作的接口。例如,你可以用`putString()`, `putInt()`, `putBoolean()`等方法添加新的键值对。 3. **...
4. 删除数据:使用Editor的remove()方法删除指定键的值,再调用commit()或apply()保存更改。 ```java editor.remove("key_string"); editor.apply(); ``` 5. 清空所有数据:使用Editor的clear()方法清除所有键值对,...
3. **写入数据**:通过`SharedPreferences.Editor`对象进行,先调用`edit()`方法获取编辑器,然后使用`putString()`, `putInt()`, `putBoolean()`等方法添加键值对,最后必须调用`commit()`或`apply()`来保存更改。...
4. **删除数据**:要删除某个键对应的值,可以使用`remove()`方法,然后调用`apply()`或`commit()`来保存更改。 ```java editor.remove("key1"); editor.apply(); ``` 5. **清除所有数据**:如果想要清空整个...
3. **提交更改**:对`SharedPreferences.Editor`的修改不会立即生效,需要通过调用`commit()`或`apply()`方法来提交。`commit()`会同步地保存更改,并返回一个布尔值,表示操作是否成功。而`apply()`则是异步保存,...
首先通过`edit()`方法获取`Editor`,然后调用相应的`putXXX()`方法(如`putString()`, `putInt()`, `putBoolean()`等)添加键值对,最后调用`apply()`或`commit()`来提交更改。 ```java SharedPreferences.Editor ...
通过`putString()`方法将用户名和密码保存到SharedPreference中,最后调用`apply()`或`commit()`方法提交更改。例如: ```java SharedPreferences preferences = getSharedPreferences("LoginInfo", MODE_PRIVATE);...
`Editor`对象可以通过`sharedPreferences.edit()`获取,之后可以调用`putString()`, `putInt()`, `putBoolean()`等方法来添加键值对,最后使用`commit()`或`apply()`方法提交更改: ```java Editor editor = ...
使用`apply()`方法会异步保存数据,而`commit()`则是同步的,一般情况下推荐使用`apply()`。 在应用启动时,我们需要检查`SharedPreference`中的登录状态,如果用户已经登录,则直接进入主界面,否则展示登录界面...