Android SharedPreferences:apply() 和 commit() 方法区别详解
SharedPreferences 是 Android 中用于存储轻量级键值对数据的工具类。它提供了两种方法来提交数据的变化:apply() 和 commit()。
- apply() 方法是异步的,它将数据变化的提交放入一个任务队列中,然后异步执行,不会阻塞主线程。它会立即返回,不会返回提交结果的 boolean 值。 示例:
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString('key', 'value');
editor.apply();
- commit() 方法是同步的,它会立即将数据变化的提交写入磁盘,并返回提交结果的 boolean 值。它会阻塞主线程,直到写入磁盘操作完成。 示例:
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString('key', 'value');
editor.commit();
在多线程操作时,apply() 方法的性能比 commit() 方法更高,因为它不会阻塞主线程。但是 apply() 方法不保证数据变化一定会成功写入磁盘,因为它是异步执行的。而 commit() 方法会保证数据变化一定会写入磁盘,但是它会阻塞主线程。
一般来说,如果对数据的写入结果不关心,可以使用 apply() 方法;如果需要知道数据的写入结果,或者需要立即将数据写入磁盘,可以使用 commit() 方法。
原文地址: https://www.cveoy.top/t/topic/pl3F 著作权归作者所有。请勿转载和采集!