2013-05-13 28 views
1

我的應用程序有一個活動和一個服務。當我第一次寫它時,我學會了使用MODE_PRIVATE從commonsware書中使用sharedPreferences。該應用程序已經發展壯大,並且由於這篇文章的範圍之外的原因,我現在需要以不同的流程運行我的服務。帶MODE_MULTI_PROCESS問題的SharedPreference

我發現我可以通過在我的清單文件中的android:process語句中指定一個以冒號開頭的名稱來實現。

但是現在我的活動和我的服務不再讀取相同的sharedPreferences。研究這個問題,我看到許多推薦使用MODE_MULTI_PROCESS。但我無法弄清楚如何加速它。

SharedPreferences myMemory = getSharedPreferences("myMemory", MODE_MULTI_PROCESS); 

這不起作用,因爲Eclipse找不到MODE_MULTI_PROCESS喜歡的話可以找到MODE_PRIVATE或MODE_WORLD_READABLE。

那麼,我該如何指定MODE_MULTI_PROCESS?
謝謝,Gary

+1

在http://stackoverflow.com/questions/11159386/getdefaultsharedpreferences-and-mode-multi-process/11160430#11160430已回答 – 2013-08-21 19:08:07

回答

0

MODE_MULTI_PROCESS在API級別11中添加。如果沒有顯示,則很可能您的目標是舊版本。

您將需要更改您在清單中定位的Android版本,或者在運行時使用Build.VERSION.SDK_INT來檢測新平臺。多進程隱含在早期版本中。

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { 
    myMemory = context.getSharedPreferences("myMemory", Context.MODE_MULTI_PROCESS); 
} else { 
    myMemory = context.getSharedPreferences("myMemory", Context.MODE_PRIVATE); 
} 

參見: http://developer.android.com/guide/topics/manifest/uses-sdk-element.html