如何检查SharedPreferences是否存在

我正在用这种方式检查文件是否存在,但是我需要超越,我需要知道是否有特定的文件,有什么办法吗?

File f = new File("/data/data/com.eventrid.scanner/shared_prefs/Eventrid.xml"); if (f.exists()){ } else{ } 

  • Android的 - 如何在非活动类中使用SharedPreferences?
  • SharedPreferences总是在我现有的应用程序中获取默认值,但是当创build新的应用程序时它确定
  • 在SharedPreferences中存储数组列表对象
  • 如何将List <Object>保存到SharedPreferences?
  • 将Android共享首选项值从string更改为Int
  • Android SharedPreferences,如何保存一个简单的intvariables
  • SharedPreferences putStringSet不起作用
  • 共享首选项“限制”
  • SharedPreferences有一个contains(String key)方法,可以用来检查给定的键是否存在。

    http://developer.android.com/reference/android/content/SharedPreferences.html

    那么,可以这样做:

      SharedPreferences sharedPrefs = getSharedPreferences("sp_name", MODE_PRIVATE); SharedPreferences.Editor ed; if(!sharedPrefs.contains("initialized")){ ed = sharedPrefs.edit(); //Indicate that the default shared prefs have been set ed.putBoolean("initialized", true); //Set some default shared pref ed.putString("myDefString", "wowsaBowsa"); ed.commit(); } 

    另一个scheme

    如果您知道确切的偏好数量,您可以:

     public void isPreferencesSet(Context context){ SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context); return (sharedPreferences.getAll().size() == exactNumberOfPreferences); } 

    这是有效的,因为存储在/data/data/myApp/shared_prefs/myApp_prefrences.xml中的首选项文件仅在其值已被设置时才包含首选项的值对。