相关疑难解决方法(0)

SharedPreferences.onSharedPreferenceChangeListener未被一致地调用

我正在注册这样的偏好更改监听器(在onCreate()我的主要活动中):

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);

prefs.registerOnSharedPreferenceChangeListener(
   new SharedPreferences.OnSharedPreferenceChangeListener() {
       public void onSharedPreferenceChanged(
         SharedPreferences prefs, String key) {

         System.out.println(key);
       }
});
Run Code Online (Sandbox Code Playgroud)

麻烦的是,听众并不总是被召唤.它最初几次更改首选项,然后在卸载并重新安装应用程序之前不再调用它.没有重新启动应用程序似乎修复它.

我发现一个邮件列表线程报告了同样的问题,但没有人真正回答他.我究竟做错了什么?

android android-preferences

250
推荐指数
4
解决办法
8万
查看次数

registerOnSharedPreferenceChangeListener不适用于在不同进程中进行的更改

registerOnSharedPreferenceChangeListenerSharedPreferences在我的活动中注册了我的.当我更改SharedPreferences在不同进程中运行的内部服务保存的数据时,onSharedPreferenceChanged不会被调用!

我应该怎么做才能调用android onSharedPreferenceChanged

android process sharedpreferences

6
推荐指数
1
解决办法
6481
查看次数

共享首选项始终返回默认值

这是我用来在首选项中创建和存储值的代码。传出是字符串变量。

SharedPreferences sp = getSharedPreferences(outgoing, Activity.MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit();                
editor.putString("PhoneNo","Hi");
editor.commit();
Run Code Online (Sandbox Code Playgroud)

这是从 SharedPreference 获取值的代码。

SharedPreferences sp 
=getSharedPreferences(outgoing,Activity.MODE_PRIVATE);
String calln = sp.getString("PhoneNo","0");
Toast.makeText(mContext, "SHARED"+calln,Toast.LENGTH_LONG).show();
Run Code Online (Sandbox Code Playgroud)

android sharedpreferences

5
推荐指数
1
解决办法
2910
查看次数