android apply commit 区别
时间: 2024-06-05 18:10:58 浏览: 15
Android的apply()和commit()是用于在SharedPreferences中保存数据的两种方法。apply()方法是异步的,它将更改应用于内存中的SharedPreferences实例,并在后台线程上执行IO操作,从而避免对主线程的阻塞。而commit()方法是同步的,它将更改应用于内存中的SharedPreferences实例,并在主线程上执行IO操作,可以立即看到结果,但可能会导致UI线程的卡顿。因此,如果更改并不需要立即反映在UI上,则建议使用apply()方法。
相关问题
SharedPreference apply() 和 commit()
在 Android 中,SharedPreferences 是一种用于存储和访问应用程序数据的机制。当我们对 SharedPreferences 进行编辑时,可以使用两种不同的提交方式:`apply()` 和 `commit()`。
1. `apply()`:
- `apply()` 方法是异步提交方式,它将更新的数据提交到内存中的 SharedPreferences 对象,并在后台异步将数据写入磁盘。
- `apply()` 方法不会阻塞当前线程,因此是更高效的提交方式,并且不会返回提交结果。
- `apply()` 方法适合在不需要关心提交结果的情况下使用,因为它不提供提交操作的成功或失败的反馈。
2. `commit()`:
- `commit()` 方法是同步提交方式,它将更新的数据提交到内存中的 SharedPreferences 对象,并立即将数据同步写入磁盘。
- `commit()` 方法会阻塞当前线程,直到写入操作完成,并返回提交操作的结果(成功或失败)。
- `commit()` 方法适合在需要关心提交结果的情况下使用,因为它提供了提交操作的成功或失败的反馈。
一般来说,推荐使用 `apply()` 方法来提交 SharedPreferences 的修改,因为它更高效且不会阻塞当前线程。但在某些情况下,如果需要确保提交操作的结果或者需要立即获取提交结果,则可以使用 `commit()` 方法。
git 取消apply diff
在Git中,如果你想要取消之前应用的差异(通常是通过`git apply`或`git cherry-pick`命令应用的更改),你可以使用`git reset`命令来撤销这些更改。`git reset`有几种形式,具体取决于你想要撤销到哪个状态:
1. 如果你只是想撤销对工作目录中文件的更改,但保留尚未提交的暂存区(即`.git/index`)中的更改,可以使用`git reset HEAD <file>`,这会将该文件的内容恢复到上一次提交的状态。
2. 如果你想完全撤销暂存区的更改,包括从暂存区移除由`git add`添加的文件,但保留历史记录,可以使用`git reset HEAD~1`,这会回退到前一个提交。
3. 如果你想回到一个特定的提交,比如`commit_hash`,并丢弃所有后续的更改,使用`git reset --hard commit_hash`,这将使你的分支指向指定的提交,并清空暂存区和工作目录。
4. 如果你不确定要回退到哪里,可以先查看提交历史,然后用`git reset --soft`或`git reset --mixed`(默认行为,等于`--soft`和`--mixed`的组合)选择一个合适的提交。
在执行这些操作之前,请确保你理解它们的效果,因为`git reset --hard`是一个危险操作,可能会丢失未提交的更改。如果不确定,最好备份工作目录,或者在虚拟环境中操作。
相关推荐
![md](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)