2013-06-25 72 views
1

我知道這個問題有點愚蠢,但我找不到我的首選項屏幕的設置存儲在哪裏。存儲首選項屏幕的設置在哪裏?

我使用的是共享的偏好設置此文件位於/data/data/my.package.name/shared_prefs/common.xml。但是,當我更改某些內容時,這些更改將被存儲。我甚至實現了可以存儲他們的信息的自定義控件。但是,我不知道設置的存儲位置。 /data/data/my.package.name/只是一個xml文件,它不包含任何相關信息。我也檢查了沒有運氣的多用戶設備的虛擬目錄。

這裏是我的xml:

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:custom="http://schemas.android.com/apk/res/my.package.name" 
    android:persistent="true" > 

    <PreferenceCategory android:title="@string/settings_basics_group" > 
     <EditTextPreference 
      android:key="nickname" 
      android:persistent="true" 
      android:positiveButtonText="@string/setting_change_name" 
      android:title="@string/settings_username" /> 
     <my.package.name.controls.EmailPreference 
      android:key="mail" 
      android:title="@string/settings_email" 
      custom:domains="@array/known_email_domains" /> 
     <Preference 
      android:summary="Mars" 
      android:title="@string/settings_current_location" /> 
     <my.package.name.controls.DatePreference 
      android:key="birthday" 
      android:title="@string/settings_birthday" /> 
    </PreferenceCategory> 
</PreferenceScreen> 

我會真的很高興,如果有人能解釋我在哪裏存儲這些設置。

+0

請解釋一下什麼「然而,當我改變某些變化存儲的時候」 - 你的意思是「但是當我改變某些變化時___不被存儲___在這裏」 –

回答

1

對於較舊的Android版本,包括果凍豆(API 16)和XML文件舊的Dalmas的答案是正確的。所以請隨時提出這個答案。

Jelly Bean MR1(API 17)開始有關於由於多用戶支持路徑的新規則:

我想通了,設置文件位於/data/user/##/my.package.name/shared_prefs/my.package.name_preferences.xml其中##是我的數字用戶ID。

爲了解決這個問題,你需要ApplicationContext那裏你需要反映mLoadedAPK和那裏mDataDir。現在我很高興我能從調試器中獲得路徑。很抱歉,想要準備好使用代碼段的每個人都必須自己去做。

1

應用程序首選項存儲在您可以用PreferenceManager.getDefaultSharedPreferences()檢索的默認共享首選項中。

本身位於/data/data/YOUR_PACKAGE_NAME/shared_prefs/YOUR_PACKAGE_NAME_preferences.xml

+0

這對我知道我可以用這種方式訪問​​設置真的很有幫助,但沒有這樣的文件。 **是**我的問題。我也可以消除這個設置只在內存中。即使我崩潰或關閉我的應用程序,這些設置也會被存儲。 – rekire

+0

你的Android版本是什麼? – Dalmas

+0

我試圖在4.2.2設備(API 17)上。但在具有(2.3.5)的另一個API 10設備上,文件就在那裏。奇怪。 – rekire

相關問題