android 保存用户喜好设置

本文介绍了一个简单的Android应用程序类SaveUserSet,用于保存和读取用户的ID和密码等设置信息。通过SharedPreferences组件实现数据的持久化存储,并提供了保存与获取用户设置的方法。

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

import java.util.HashMap;
import java.util.Map;

import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.text.NoCopySpan.Concrete;
//保存用户设置
public class SaveUserSet {
	private Context context;
	public SaveUserSet(Context context){
		this.context = context;
		
	}
	public void saveUserSets(String tmpUserId, String tmpUserPass) {
		SharedPreferences sp = context.getSharedPreferences("userset", Context.MODE_PRIVATE);
		Editor edit = sp.edit();
		edit.putString("userid", tmpUserId);
		edit.putString("userpass", tmpUserPass);
		edit.commit();
	}

	public Map getUserSets() {
		Map<String, String> tmpMap = new HashMap<String, String>();
		SharedPreferences sp2 = context.getSharedPreferences("userset", Context.MODE_PRIVATE);
		tmpMap.put("userid", sp2.getString("userid", ""));
		tmpMap.put("userpass", sp2.getString("userpass", ""));
		return tmpMap;
		
	}

}

### Android 12 中设置项的保存时机 在 Android 12 的开发过程中,设置项的保存机制对于应用程序的状态管理和用户体验至关重要。当涉及到设置项的保存时间点时,主要依赖于 `SharedPreferences` 或者更现代的数据存储解决方案如 `DataStore`。 #### 使用 SharedPreferences 进行设置保存 传统的 `SharedPreferences` 提供了一种简单的方式来进行键值对形式的小量数据持久化操作。每当调用 `commit()` 方法或异步的 `apply()` 方法之后,更改会被立即写入磁盘[^1]: ```java // 获取共享偏好实例 SharedPreferences sharedPreferences = getSharedPreferences("settings", MODE_PRIVATE); // 编辑器用于修改偏好中的值 SharedPreferences.Editor editor = sharedPreferences.edit(); editor.putString("key_name", "value"); // 同步提交变更到磁盘 boolean success = editor.commit(); // 返回true表示成功 ``` 值得注意的是,在较新的版本中推荐使用 `apply()` 而不是 `commit()`,因为前者是非阻塞式的,并且会在后台线程执行,从而不会影响主线程性能。 #### 利用 DataStore 替代传统方式 随着 Android 官方不断推进现代化编程模型,引入了 `DataStore` 来替代旧有的 `SharedPreferences`.它支持协程和流式处理,能够更好地适应复杂的配置需求并提供更强健的数据访问模式: ```kotlin val Context.dataStore by preferencesDataStore(name = "settings") suspend fun saveSetting(key: String, value: String){ val dataStoreKey = stringPreferencesKey(key) context.dataStore.edit { settings -> settings[dataStoreKey] = value } } ``` 通过上述两种方法之一可以实现设置项的有效保存。具体选择取决于项目的技术栈以及个人喜好等因素。通常情况下,如果只是简单的几个开关状态之类的少量信息,则可以直接采用 `SharedPreferences`;而对于复杂的应用场景则建议迁移到 `DataStore`.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值