在两个进程之间共享简单数据

时间:2014-08-08 10:07:02

标签: android local-storage sharedpreferences

我正在开发一个Android应用程序,当用户输入许可证代码时,从Web服务检索一些简单的键值数据并保存到共享偏好。

我的应用程序也有一项服务,该服务从单独的流程开始,需要从共享偏好中获取以前保存的数据的一部分。

我的主应用程序可以说是在" com.foo.myMainApp"包。我的服务是" com.foo.myMainApp / myService"。

问题是,该服务无法访问主程序的共享首选项,因为它们保存在不同的位置。

我在这个问题上挣扎了好几天,但却找不到出路。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

使用BroadcastReceivers

在服务中

    Intent broadcastIntent = new Intent();
    broadcastIntent.setAction("ACTION");
    broadcastIntent.putExtra("MESSAGE", "hello");
    sendBroadcast(broadcastIntent);

在MainACtivity中 注册这个广播接收器和你的好消息。

   private class Message extends BroadcastReceiver{

        @Override
        public void onReceive(Context context,  Intent intent) {
           // get the message here
        }
    }

//在onStart上注册         registerReceiver(new Message(),new IntentFilter(" ACTION"));

希望这有助于:)