【发布时间】:2014-03-25 08:44:09
【问题描述】:
我在 Android 中有两个不同的应用程序。我需要将数据从一个发送到另一个。 第一个是一个 Activity,我在 sharedpreferences 文件中输入了这个数据值:
SharedPreferences selector;
selector = getSharedPreferences("tecnologia", Context.MODE_WORLD_READABLE);
Editor editor = selector.edit();
select = (RadioButton) findViewById(opciones.getCheckedRadioButtonId());
switch (select.getId()) {
case R.id.radio0:
editor.putString("opcion", "US");
editor.commit();
break;
case R.id.radio1:
editor.putString("opcion", "UWB");
editor.commit();
break;
}
Intent i = new Intent(this, ServiceConexion.class);
startActivity(i);
finish();
在我启动的第二个活动中,我检查了这个文件并且是正确的。然后我打电话给远程服务。
在第二个服务(第二个项目)中,我阅读了这个文件:
try {
Context con = createPackageContext(
"org.gradiant.sistole.locdisplay",
0);
SharedPreferences configuracion;
configuracion = con.getSharedPreferences("tecnologia",
MODE_PRIVATE);
select = configuracion.getString("opcion", "00");
} catch (NameNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
但并不总是具有正确的值。为什么?
【问题讨论】:
-
为什么不使用意图将要传递的数据传递给第二个活动?您可以使用 putExtra() 和 getExtra() 来在活动之间传递数据。
-
是的,我在方法onBind中尝试了这个,但是应用程序调用这个方法之后我需要这个值onCreat,我想那是因为不是普通服务,是远程服务
-
如果您找到了解决方案,请将其添加为答案。不要将其编辑到您的问题中。
标签: java android preferences