2011-04-13 69 views

回答

24
PreferenceManager.getDefaultSharedPreferences(getBaseContext()); 

將提供給喜好文件,它是全球整個應用程序包的訪問;任何活動都可以訪問首選項(internaly,保存首選項的xml文件將被命名爲your.application.package_preferences.xml)。

contextInstance.getPreferences(Context.MODE_PRIVATE); 

將只提供了contextInstance類的偏好:只有上下文的類可以訪問這些偏好的情況下,(說你的方案仍然是your.application.package和你在your.application.package.foo.MyActivity,internaly首選項文件是foo.MyActivity.xml)。

+0

好吧,你解釋得比我好。豎起大拇指! – Wroclai 2011-04-13 17:23:25

+0

謝謝,OcuS。你能不能請澄清一下,如果我使用'.getDefaultSharedPreferences(getBaseContext())',其他應用程序是否可以編輯這個值? – 2011-04-13 18:47:05

+0

不,因爲'getDefaultSharedPreferences(Context context)'會給你'Context.MODE_PRIVATE'中的首選項(根據http://android.git.kernel.org/?p=platform/frameworks/base.git;a=blob ; f = core/java/android/preference/PreferenceManager.java; h = e44a0907d20916613f02843291deef9483433052; hb = HEAD#l347)。也許你可以嘗試一些東西,比如這個帖子的最後一篇http://groups.google.com/group/android-developers/browse_thread/thread/6f1a12fffd60a824。從來沒有嘗試過自己,希望它有幫助。 – OcuS 2011-04-14 10:17:49