【问题标题】:Send data between two differents application using SharedPreferences使用 SharedPreferences 在两个不同的应用程序之间发送数据
【发布时间】: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


【解决方案1】:

您无法访问其他application data。相反,您可以这样做。在sd card 或任何location 中创建一个文件,然后在两个应用程序中访问它。

【讨论】:

  • ummm .. 我用这个方法其他时间和工作,你可以读取其他应用程序的sharedpreferences文件,但我不知道为什么这次不能正常工作,可能问题是因为拳头没有正确保存应用继续打开
  • 检查这个。这可能会对你有所帮助。stackoverflow.com/questions/6030321/…
【解决方案2】:

MODE_PRIVATE 表示它是该应用程序私有的,其他应用程序无法访问。 您如何通过两种方式实现它:

  1. 如另一个答案所说,在 sd 卡中创建一个文件。但这很危险,因为任何其他应用程序都可以读取它。

  2. 在请求数据的应用中使用startActivityForResult(intent,requestCode),在其他应用中使用setResult

P.S.:据我了解,它们都是你的应用程序。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-18
  • 1970-01-01
  • 1970-01-01
  • 2021-09-16
相关资源
最近更新 更多