如何将变量复制到其他正在运行的进程?

时间:2015-06-11 20:13:31

标签: android service process

首先,我希望我提出正确的问题(否则我会删除它)。

我将描述正在发生的事情以及我认为的原因:

我的应用程序Service在后​​台运行,其流程与UI不同。 UIService都需要来自我服务器的相同信息,因此他们会共享此信息。我将UI的这些信息发送到Service,因此我将其复制到我的Service,因此应该独立于我的UI

问题是:如果我关闭了我的UI(杀了我的应用,而Service仍然在运行)我的Service崩溃,因为我从{{{}}复制了变量1}}为空。

当我从UI收到我的Service信息时,我首先将其复制到我的UI中:

Service.str = strFromUi;

但是因为它会有相同的参考,我试着这样做:

Service.str = new String(strFromUi);

我检查过他们没有相同的引用(str == strFromUi -> false)。

我对发生的事情并不清楚。也许new String(strFromUI)正在UI进程中创建变量,当我终止此过程时,Service无法再访问它。

非常感谢任何帮助或参考!

1 个答案:

答案 0 :(得分:0)

问题不是我想象的那样。当我杀死我的应用程序(UI)时,我的服务会因某些(仍然未知)的原因而重新创建。

我的解决方案是在Preferences中保留此变量,因此在重新创建我的服务时,它会从Preferences中读取并且能够保持正常运行。