Android SharedPreferences未在某些设备上保存

时间:2014-05-19 15:16:38

标签: android sharedpreferences

我有一个奇怪的问题。将我的用户设置保存到SharedPreferences适用于80%的用户。但对于其他20%,偏好不会被保存。

我安装了相同版本的android的测试设备,它运行正常。我也有旧的和更新的设备来测试。我根本无法重新创造这个问题。

有谁知道这里会发生什么?某些用户可能在手机上设置了阻止保存到首选项文件的设置吗?

我迷路了。请抛弃任何想法。

我的代码非常简单......这是一个例子。

if(mSwitchSound.isChecked()){
            editor.putBoolean(Preferences.IS_SOUND_ON, true);
        } else {
            editor.putBoolean(Preferences.IS_SOUND_ON, false);
        }
        editor.commit();

谢谢。

2 个答案:

答案 0 :(得分:0)

我必须说,如果共享首选项正在使用一个设备,无论Android版本是什么,因为我还没有测试Android手机,而是谷歌电视,Android智能电脑等等。所以,它应该适用于所有但是,如果你遇到这个问题我可以猜到的是,对象可能是静态的,而在某些设备上,对象会被破坏。或者问题出在其他地方。请您的经理为您提供用户已报告的例外情况的日志,如果有,则发布日志。然后我们可以帮助

答案 1 :(得分:0)

我是一名初级Android开发者,我目前面临着同样的问题(由于null返回,应用程序崩溃)。我开发了一个超级吃类型的应用程序,但由于某种原因,一些设备无法保存到共享首选项。某些相同品牌和型号的设备会出现此问题,而其他设备(同一品牌和型号)则不会出现此问题。我的一位朋友提到,在他的公司,他遇到了同样的问题,他提到这可能是由于每台设备上ROM的配置不同造成的。因此,他只针对特定设备进行开发。

不幸的是我还没有找到解决方法,但我的工作是在手机内部存储中创建一个配置文件。我使用javascript对象表示法(JSON)来构造我的配置文件。然后我使用GSON将我的JSON序列化和反序列化为java模型类。希望这可以帮助。