我的应用有活动和服务。当我第一次写它时,我学会了使用MODE_PRIVATE从commonsware书中使用sharedPreferences。该应用程序已经增长,由于超出本文范围的原因,我现在需要在不同的流程中运行我的服务。
我发现我可以通过在清单文件中的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?
谢谢,加里
答案 0 :(得分: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