PreferenceActivity保存为私有值?

时间:2011-11-13 12:42:43

标签: android

我不明白android中共享偏好的概念。智能手机上的ather应用程序可以共享prefrerence吗? 如果我使用此类作为保存首选项:

    public class ImpostazioniActivity extends PreferenceActivity {
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.impostazioni);

    } }

安达在我使用的其他活动之后:

  SharedPreferences preference =  PreferenceManager.getDefaultSharedPreferences(getContext());
    if(preference.getString("username","").length() == 0 || preference.getString("password","").length() == 0)
        return  false;
    else
        return  true;

没关系?我确定这些信息只能在我的应用程序中访问? 感谢

1 个答案:

答案 0 :(得分:1)

引用:

  

要获取应用程序的SharedPreferences对象,请使用以下两种方法之一   方法:

     

getSharedPreferences() - 如果您需要多个首选项,请使用此选项   按名称标识的文件,使用第一个参数指定。

     

getPreferences() - 如果您只需要一个首选项文件,请使用此选项   你的活动。因为这将是您的唯一首选项文件   活动,你不提供名字

所以你应该使用getSharedPreferences(PREFS_FILENAME, Context.MODE_PRIVATE),其中PREFS_FILENAME是你希望应用程序使用的文件, Context.MODE_PRIVATE是一种文件创建模式,其中创建的文件只能由调用应用程序(或共享相同用户ID的所有应用程序)访问。

编辑:我查看了您的代码,如果您打算存储任何敏感的用户信息(如密码),您必须先加密它!看一下这个ObscuredSharedPreferences implementation。它将使您能够在SharedPreferences中加密/解密您的数据。