Android中向SharedPreferences存取List数据

博客介绍了Android中SharedPreferences的commit()与apply()方法的区别。commit()同步提交,立即写入硬盘,耗时久,会返回提交结果;apply()异步提交,不立即写入,耗时短,无返回值。数据多建议用apply(),数据少建议用commit()。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 Android中SharedPreferences的commit()与apply()的区别
1. commit()方法是同步的提交数据,立即写入到硬盘,耗时比较长;
2. apply()方法是异步的提交数据,不会立即写入到硬盘,耗时比较短;
3. commit()方法会返回一个boolean值,表示是否提交成功;
4. apply()方法不会返回任何值,表示提交成功;
5. 如果提交的数据比较多,建议使用apply()方法,因为它比较快;
6. 如果提交的数据比较少,建议使用commit()方法,因为它比较稳定。

存List数据
SharedPreferences sp2 = getActivity().getSharedPreferences("ABC", Activity.MODE_PRIVATE);
Gson gson = new Gson();
String data = gson.toJson(list);
SharedPreferences.Editor editor = sp2.edit();
editor.putString("list", data).commit();
取List数据
SharedPreferences sp = getSharedPreferences("ABC", Activity.MODE_PRIVATE);
List<Info> listJson = sp.getString("list", "");
Gson gson = new Gson();
 quickGroupList = gson.fromJson(listJson, new TypeToken<List<Info>>() {}.getType()); //将json字符串转换成List集合
public void set(){
	SharedPreferences sp = context.getSharedPreferences("Info", 0);
	SharedPreferences.Editor ed = sp.edit();
	Gson gson = new Gson();
	String json = gson.toJson(list);
	String json2 = gson.toJson(list2);
	ed.putString("List", json);
	ed.putString("List2", json2);
	ed.apply();
}
publicvoid get(){
	SharedPreferences sp = context.getSharedPreferences("Info", 0);
	String jsonList = sp.getString("List", null);
	String jsonList2 = sp.getString("List2", null);
	Type type = new TypeToken<ArrayList<InfoBean>>(){}.getType();
	Type type2 = new TypeToken<ArrayList<String>>(){}.getType();
	Gson gson = new Gson();
	List list = gson.fromJson(jsonList, type);
	List list2 = gson.fromJson(jsonList2, type2);
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值