关于getSharedPreferences监听、存储位置及简易天气预报项目的技术咨询
嘿,这就来帮你搞定这些Android开发相关的问题:
添加监听的方法
Android没有直接的“一键监听”API,但可以通过SharedPreferences.OnSharedPreferenceChangeListener接口来实现,步骤很简单:
- 先实现监听器逻辑,重写
onSharedPreferenceChanged方法,针对特定key的变化做处理; - 获取SharedPreferences实例后注册监听器;
- 一定要记得在合适的生命周期(比如Activity的
onPause())注销监听器,避免内存泄漏。
举个简单的代码示例:
// 定义监听器实例 SharedPreferences.OnSharedPreferenceChangeListener prefListener = (sharedPrefs, changedKey) -> { // 只处理我们关心的key if ("user_auto_login".equals(changedKey)) { boolean isAutoLogin = sharedPrefs.getBoolean(changedKey, false); // 这里写key变化后的逻辑,比如更新UI } }; // 获取SharedPreferences实例 SharedPreferences myPrefs = getSharedPreferences("AppSettings", MODE_PRIVATE); // 注册监听器 myPrefs.registerOnSharedPreferenceChangeListener(prefListener); // 在Activity的onPause中注销,防止内存泄漏 @Override protected void onPause() { super.onPause(); myPrefs.unregisterOnSharedPreferenceChangeListener(prefListener); }
注意:只有通过Editor.commit()或Editor.apply()修改偏好值时,监听器才会触发,直接修改底层文件不会触发哦。
存储位置
默认情况下,SharedPreferences的XML文件存在设备的/data/data/你的应用包名/shared_prefs/目录下,文件名就是你调用getSharedPreferences()时传入的名称,后缀为.xml。比如你用getSharedPreferences("AppSettings", MODE_PRIVATE),对应的文件就是AppSettings.xml。
问题2:寻找Android Studio中易编译的3-5天简易天气预报项目
给你推荐几个适合新手的方向,都是容易编译、逻辑清晰的项目:
- OpenWeatherMap基础版项目:这类项目大多用免费的OpenWeatherMap API,只做核心的网络请求(用Retrofit/Volley都有)、JSON解析和3-5天预报的列表展示,没有复杂的自定义控件或额外依赖,代码量少,注释也全;
- Jetpack入门级天气项目:用ViewModel+LiveData管理数据,RecyclerView展示预报,网络用OkHttp,完全贴合现代Android开发规范,结构清晰,容易理解,而且很多这类项目会附带详细的步骤说明;
- GitHub入门项目:直接搜索“Android Simple 3 Day Weather”,选最近1-2年更新、star数几百的项目,这类项目一般都是新手练手用的,配置简单,编译时很少出问题,只需要替换自己的OpenWeatherMap API密钥就能运行。
小贴士:选项目时先看README里的Gradle版本和依赖配置,尽量选和你当前Android Studio版本匹配的,避免编译报错~
关于boolean getBoolean(String key, boolean defValue)的参数说明
参考官方文档,这个方法的两个参数作用如下:
String key:偏好设置项的唯一名称,用来定位你要获取的布尔值条目。如果这个key不存在,或者读取失败,就会返回你指定的默认值;boolean defValue:当指定的key不存在、偏好文件读取失败,或者存储的不是布尔类型时,返回的默认布尔值。
内容的提问来源于stack exchange,提问作者Mickey D
相关产品推荐
相关产品推荐

