应用程序被杀后无法保存我的首选项

时间:2011-09-03 22:11:53

标签: android xml save preferences

您好我正在尝试在我的Android应用中实施设置页面。 我定义了一个xml Preference文件,我在其中实现了CheckBoxPreference和EditTextPreference。

所有设置在运行应用程序时都能正常运行,但是当我杀死它时,我将丢失所有设置。

Preference.xml文件:

<PreferenceCategory android:title="Connection">

    <CheckBoxPreference
        android:title="Auto Log-In"
        android:summary="Auto connect "
        android:key="autoLogIn" 
        android:enabled="true" 
        android:selectable="true"/>

    <EditTextPreference
        android:name="Server"
        android:summary="Change the default server"
        android:defaultValue="www.google.com"
        android:title="Change server to:"
        android:key="www.google.com" />

</PreferenceCategory> 

Preferences.class

public class Preferences extends PreferenceActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.preferences);\
    }
}

如何让应用保存设置?

更新: 我做了一些测试,并在虚拟设备和我的旧HTC传奇与Android 2.1设置工作正常!但它们不适用于Android 2.2的三星Galaxy S !这对任何人都有意义吗?

3 个答案:

答案 0 :(得分:2)

我用三星Galaxy S的软重置 *解决了这个问题...我不能相信我整天都在使用正确的代码。

希望这会为其他人节省一些时间。 马可

* 软重置:设置 - &gt;隐私 - &gt;工厂数据重置。

答案 1 :(得分:0)

不应该保存prefs的任何理由。 执行更改时会立即保存首选项(例如,选中复选框)。

您确定不会简单地将密钥与值混淆吗?您的服务器密钥是android:key="www.google.com"也许这就是您认为它未保存的原因?

答案 2 :(得分:0)

我认为您需要为要存储在SharedPreferences中的首选项设置android:persistent="true"。正如给出here