0

服务 A 将一些信息保存在字符串数组“information[]”中。当服务 A 完成时,它应该启动服务 B,并且服务 B 应该接收到字符串数组。如何才能做到这一点?我尝试在捆绑包中发送它,但似乎无法像通常在活动之间那样获取数据。

编辑:

这是我的代码:

服务 A,onDestroy

Intent is2 = new Intent(this, GatherInformationService.class);
is2.putExtra("information", info);
startService(is2);

服务 B onCreate

Bundle b = new Bundle();
coords = b.getStringArray("information");
4

3 回答 3

2

我看不到您的字符串数组应该如何存在于Bundle您创建的新对象中。似乎你应该把你的逻辑放到onStartCommand这样的方法中:

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    String[] info = intent.getStringArrayExtra("information");
}

有关详细信息,请参阅开发人员指南部分

于 2012-07-14T18:51:14.603 回答
1

您可以使用intent.putExtra方法:

在服务 A 中:

Intent intent = new Intent( this, YourTargetService.class );
intent.putExtra("YourExtraName", information );

在服务 B onCreate 中:

String[] received = getIntnet().getStringArrayExtra("YourExtraName");

那应该做的工作

于 2012-07-14T17:54:37.257 回答
0

一个面向对象的技巧。您可以使您的数组静态,您可以在 onCreate 方法上访问该数组,也可以在另一个服务中访问该数组,例如 ClassName.array = Service1.array

谢谢

于 2012-07-14T17:47:07.527 回答