在服务之间传递数据(android)
服务A将一些信息保存在字符串数组“information[]”中。当服务A完成时,它应该启动服务B,服务B应该接收字符串数组。如何做到这一点? 我曾尝试将其打包发送,但似乎无法像通常在活动之间那样获取数据 编辑: 这是我的密码: 服务A,onDestroy在服务之间传递数据(android),android,eclipse,service,bundle,Android,Eclipse,Service,Bundle,服务A将一些信息保存在字符串数组“information[]”中。当服务A完成时,它应该启动服务B,服务B应该接收字符串数组。如何做到这一点? 我曾尝试将其打包发送,但似乎无法像通常在活动之间那样获取数据 编辑: 这是我的密码: 服务A,onDestroy Intent is2 = new Intent(this, GatherInformationService.class); is2.putExtra("information", info); startService(is2); 服务B
Intent is2 = new Intent(this, GatherInformationService.class);
is2.putExtra("information", info);
startService(is2);
服务B onCreate
Bundle b = new Bundle();
coords = b.getStringArray("information");
一个面向对象的技巧。你可以使你的数组是静态的,你可以在onCreate方法上访问该数组,或者在其他服务(如ClassName.array=Service1.array)中的任何地方访问该数组
谢谢你的OOP技巧。你可以使你的数组成为静态的,你可以在onCreate方法上访问该数组,或者在其他服务(如ClassName.array=Service1.array)中的任何地方访问该数组
谢谢您可以使用
intent.putExtra
方法:
在服务A中:
Intent intent = new Intent( this, YourTargetService.class );
intent.putExtra("YourExtraName", information );
在服务B onCreate中:
String[] received = getIntnet().getStringArrayExtra("YourExtraName");
这就是应该做的工作您可以使用
intent.putExtra
方法:
在服务A中:
Intent intent = new Intent( this, YourTargetService.class );
intent.putExtra("YourExtraName", information );
在服务B onCreate中:
String[] received = getIntnet().getStringArrayExtra("YourExtraName");
这就是应该做的工作我看不出您的字符串数组应该如何存在于您创建的新
Bundle
对象中。似乎您应该将逻辑放入onStartCommand
方法中,如下所示:
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
String[] info = intent.getStringArrayExtra("information");
}
有关详细信息,请参阅《开发人员指南》。我看不出您的字符串数组应该如何存在于您创建的新
捆绑包中。似乎您应该将逻辑放入onStartCommand
方法中,如下所示:
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
String[] info = intent.getStringArrayExtra("information");
}
有关详细信息,请参阅《开发人员指南》。这正是我所做的,但它找不到字符串数组。这正是我所做的,但它找不到字符串数组。没有危险,我们在大多数情况下使用应用程序变量,而不是实例变量。服务A何时被销毁?在停止服务时,可以将这些应用程序级变量设置为null。感谢没有危险,我们在大多数情况下使用应用程序变量,而不是实例变量。服务A何时被销毁?在停止服务时,可以将这些应用程序级变量设置为null。ThanksBut OnStart命令不是在onCreate之后调用的吗?主代码不是应该在onCreate中吗?onStartCommand
将在每次调用服务时被调用,无论服务是否已创建。这个方法应该处理这个调用。相反,onCreate
对于初始化例程更方便。@Eric我能为您提供进一步的帮助吗?但是onCreate之后不是调用onstart命令吗?主代码不是应该在onCreate中吗?onStartCommand
将在每次调用服务时被调用,无论服务是否已创建。这个方法应该处理这个调用。相反,onCreate
对于初始化例程更方便。@Eric,我能为您提供进一步的帮助吗?