1

我的应用程序有一个活动和一个服务。当我第一次写它时,我学会了使用 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 ?
谢谢,加里

4

1 回答 1

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

于 2013-11-27T04:40:38.170 回答