SharedPreference.Editor的apply和commit方法异同

【ComfyUI 基础教程】ComfyUI 局部重绘工作流教程 本篇指南将带你了解 ComfyUI 中的局部重绘工作流,并带你完成一个局部重绘的示例,以及遮罩编辑器的使用等。 阅读详情

在android 中存储数据时经常用SharedPreference, 并且在提交数据时一直用的是Editor的commit方法, 今天无意了看到了系统用了apply,看了方法的介绍, 原来这个方法也是可以提交数据的.

apply方法在官方SDK说明如下:

Commit your preferences changes back from this Editor to the SharedPreferences object it is editing. This atomically performs the requested modifications, replacing whatever is currently in the SharedPreferences.

Note that when two editors are modifying preferences at the same time, the last one to call apply wins.

Unlike commit, which writes its preferences out to persistent storage synchronously, apply commits its changes to the in-memory SharedPreferences immediately but starts an asynchronous commit to disk and you won’t be notified of any failures. If another editor on this SharedPreferences does a regular commit while a apply is still outstanding, the commit will block until all async commits are completed as well as the commit itself.

As SharedPreferences instances are singletons within a process, it’s safe to replace any instance of commit with apply if you were already ignoring the return value.

You don’t need to worry about Android component lifecycles and their interaction with apply() writing to disk. The framework makes sure in-flight disk writes from apply() complete before switching states.

The SharedPreferences.Editor interface isn’t expected to be implemented directly. However, if you previously did implement it and are now getting errors about missing apply(), you can simply call commit from apply().

这两个方法的区别在于: 
1. apply没有返回值而commit返回boolean表明修改是否提交成功 
2. apply是将修改数据原子提交到内存, 而后异步真正提交到硬件磁盘, 而commit是同步的提交到硬件磁盘,因此,在多个并发的提交commit的时候,他们会等待正在处理的commit保存到磁盘后在操作,从而降低了效率。而apply只是原子的提交到内容,后面有调用apply的函数的将会直接覆盖前面的内存数据,这样从一定程度上提高了很多效率。 
3. apply方法不会提示任何失败的提示。 
由于在一个进程中,sharedPreference是单实例,一般不会出现并发冲突,如果对提交的结果不关心的话,建议使用apply,当然需要确保提交成功且有后续操作的话,还是需要用commit的。

评估篇| 大模型评测综述 1、基于人类的评测。与针对基础大语言模型的自动化评测不同,微调大语言模型的评测更加注重模型在实际应用场景中的表现,如与人类交互的自然度、对齐度等。2、基于模型的评测。例如,AlpacaEval 排行榜 基于由大语言模型合成的人类需求指令作为评测任务,然后收集待评估大模型的回应,并采用 GPT-4 等大语言模型作为评测员,将待评估大语言模型的输出与参考输出进行成对比较。1、大语言模型对评估设置极为敏感,包括问题的表述方式、提示样本的选择以及答案的解析策略等,这些细微的差别都可能导致评估结果的显著变化。 阅读详情

相关推荐

RK3568+XS9922B+Android11双模视频输入:CVBS与AHD兼容驱动开发实战

本文详细介绍了基于RK3568平台和XS9922B解码芯片,在Android11系统上开发支持CVBS与AHD双模视频输入的兼容驱动实战。内容涵盖硬件选型、内核驱动框架分析、双模信号自动识别与配置、视频通道切换实现及图像质量优化等关键技术点,为车载监控等需要兼容新旧摄像头的项目提供完整解决方案。

js777的博客 379

SharedPreferences.Editor 中 apply 与 commit 方法的区别

SharedPreferences.Editor 中 apply 与 commit 方法的区别

jiet_h的博客 1429

深入解析DDR5 RFM机制:从JESD79-5标准到硬件实现

本文深入解析了DDR5内存标准中的关键机制——RFM(Refresh Management)。文章从JESD79-5标准出发,详细阐述了RFM如何通过RAA计数器实现从被动定时到主动响应的智能刷新管理,并探讨了其硬件实现细节、命令调度挑战及系统级设计考量,为芯片设计工程师优化DDR5内存子系统性能与可靠性提供了实践指导。

fff88的博客 489

Android SharedPreferences 使用方法详解

目录 1. SharedPreferences 定义介绍 2. SharedPreferences.Editor 方法介绍 2.1 apply() 2.2 commit() 2.3 clear() 2.4 remove() 2.5 apply() 与 commit() 的区别 3. SharedPreferences 例子Demo 3.1 getPreferences() 例子...

jerechen的博客 5191

从NASA DataPort下载到PyTorch Dataset:手把手处理USGS光谱库的AVIRIS数据

本文详细介绍了如何从NASA DataPort下载USGS光谱库的AVIRIS高光谱数据,并将其转化为PyTorch Dataset对象。内容涵盖数据获取、预处理、辐射定标及高效数据加载技巧,特别针对AVIRIS数据的水吸收波段剔除和波段分组标准化进行了重点讲解,为环境监测、地质勘探等领域的研究者提供实用指南。

weixin_30607659的博客 282

【详细】芯片设计全流程(包括每个流程需要用到的工具以及需要参与的工作人员)

一颗芯片的诞生经历了设计、制造和测试(分别对应集成电路产业链的设计业、制造业和封测业),而每一步都包含了复杂的步骤和流程。 图0-1 集成电路产业链 现在,我们重点介绍芯片设计的全流程以及每个流程需要用到的设计工具和需要参与的工作人员。 一、IC设计分类 首先对IC设计的分类做个介绍,如图1-1所示。 图1-1 IC设计分类 如图1-1所示,IC设计可以粗分为数字IC设计和射频/模拟IC设计,数字IC设计又可分为ASIC设计和FPGA/CPLD设计,此外还有一部分IC设计.

qq_36045093的博客 8万+

Android中SharedPreferences.Editor的apply()与commit()方法

写在前面   今天在写 LifeTips App 时,涉及到存储用户调节的屏幕亮度时,使用了 SharedPreferences,及 SharedPreferences.Editor,结果 Android Studio 出现了”黄色的感叹号“(本人有强迫症,不喜欢任何 warning。。),提示:Consider using apply() instead of commit on SharedP...

ZhangRui的博客 7139

在thinkBook16的win11基础上安装ubuntu22.04

背景:联想ThinkBook16 pro 32G/512G,系统盘已安装Win11,加装一条M.2-2T固态,想在2T上分一个300GB的EXT4分区,然后把ubuntu22.04安装在该分区上,并实现Win11+Linux多系统共存。 目标:实现多磁盘下分区管理的简化,优化掉一些不必要的多余的维护性质的分区。

QzmAIoT 4003

1.SharedPreferences

1、简介 SharedPreferences存储是一种轻量级的数据存储方式,它屏蔽了对底层文件的操作,通过为程序开发人员提供简单的编程接口,实现以简单的方式对数据进行永久保存。这种方式主要对少量的数据进行保存,比如应用程序的各种配置信息(是否打开音效、是否打开震动等等)、玩家游戏积分、应用主题等进行保存。 2、使用方法及步骤 2.1、获得SharedPreferences对象 SharedPreferences接口位于android.cont...

weixin_42205000的博客 314

AutoSAR配置视频讲解:总目录

AutoSAR实验视频讲解:闪烁一颗LED实验【总目录】 欢迎大家来到雪云飞星的《AutoSAR实验视频讲解》,本专栏是一个关于AutoSAR的闪烁LED灯的实验课程,一共8节课,每节课的视频都放在文章最后,传送门如下: 前言 AutoSAR实验视频讲解:简介 EB 的Mcal配置 AutoSAR实验视频讲解:Mcal配置 DaVinci Cfg配置 AutoSAR实验视频讲解:新建DaVinci工程 AutoSAR实验视频讲解:Os配置(预计2021-3-10更新) AutoSAR实验视频讲解:检查校验报

雪云飞星的博客 2万+

AD22里面封装修改后,同步到PCB图里面

【摘要】本文介绍了Altium Designer 22中同步更新元件封装的三种方法:1)从PCB库直接更新:在PCB库面板右键选择"Update PCB With[封装名]";2)通过原理图标准更新:使用Design->Update PCB Document菜单;3)在PCB编辑器中验证更新:通过Tools->Update From PCB Libraries菜单。所有方法最终都需通过ECO(工程变更订单)确认变更,建议执行前仔细核对变更内容。这些方法适用于AD22及早期版本

whm128的博客 1761

SharedPreference.Editor 的 apply 和 commit 方法异同

1. apply方法在 官方SDK说明 如下: Commit your preferences changes back from this Editor to the SharedPreferences object it is editing. This atomically performs the requested modifications, replacing whatever is...

怪咖先森的博客 285

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Android SharedPreference.Editor的apply和commit方法异同

在android 中存储数据时经常用SharedPreference, 并且在提交数据时一直用的是Editor的commit方法, 今天无意了看到了系统用了apply,看了方法的介绍, 原来这个方法也是可以提交数据的. apply方法在官方SDK说明如下: Commit your preferences changes back from this Editor to the SharedPre

mmga的专栏 514

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

SharedPreference.Editor的apply跟commit方法的異同

相同点: 1.二者都可提交preference的修改数据 2.二者都是原子操作 区别: 1.apply没有返回值而commit返回boolean表明修改是否提交成功 2.apply是将修改数据原子提交到内存,而后异步真正提交到硬件磁盘;而commit是同步的提交到硬件磁盘,因此,在多个并发的提交commit的时候,他们会等待正在处理的commit保存到磁盘后在操作,从而降低了效率。而ap

枫轻舞云飘散 1414

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

SharedPreference.Editor的apply()和commit()方法异同

在androidstudio上coding经常会提示一些警告,通过它我们能了解到一些自己不了解的好的编程习惯和少用的方法,本次发现就是一个例子,用习惯了SharedPreference.Editor的commit()方法,但是在studio提示使用apply()方法替换,看到apply()方法有点不知所措,因为根本不了解这个方法的作用随即翻阅android的api和google了一下apply()

yangxianshengzhu的博客 454

SharedPreference.Editor的 apply 和commit 方法异同

在Android 中存储数据时经常用SharedPreference, 并且在提交数据时一直用的是Editor的commit(API 1中的方法), 系统用了apply(API 9中的方法),看了方法的介绍, 原来这个方法也是可以提交数据的.

疯狂的小马 703
上一篇: Android中用GifView显示Gif动画
下一篇: continue、break、return的区别
阿伟不知梦
博客等级 码龄11年 9粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值