一个包是否可以传递给一个服务?

问题描述:

在我的应用程序中,我需要从活动获取价值到服务。我需要检索的值是我在该活动中单击的值。一个包是否可以传递给一个服务?

对于例如:如果i。从活动A选择X [I]元件,我需要检索该值x [i]于服务S.

如何可能?

感谢,

尼基

在服务上使用该:

public int onStartCommand (Intent intent, int flags, int startId) 
{ 
    super.onStartCommand(intent, flags, startId); 
    Bundle bundle = intent.getExtras(); 
} 
+0

void returntype与参数不兼容! :( – Niki 2011-03-10 12:58:42

+0

'void'returntype与int参数不兼容!!! :( – Niki 2011-03-10 13:03:06

+1

@niki抱歉,它的int。你应该避免复制粘贴。真正的程序员类型代码。然后他们解决错误。) – Reno 2011-03-10 13:43:58

当你创建一个意图,你可以把数据给它相同的数据将与意向一起,当你启动服务转移。

Intent intent = new Intent(context, Class) ; 
intent.putExtra(key, value); 

startService(intent); 

在接收端获取意图并从中获得额外的价值。

Bundle b = getIntent().getExtra(); 
b.get<ValueType>(key); 
+0

我cudn't在我的服务中找到getIntent()。 – Niki 2011-03-10 10:33:29

+0

如果接收部分是活动,您会发现getIntent()。在我的情况下,它的服务。 – Niki 2011-03-10 10:35:30

+0

@Niki,Bundle b = getIntent()。getExtra(); b.getXXX(键);将在接收服务类的onStart/onCreate方法内被调用。 – Vinay 2011-03-10 10:40:05

您可以覆盖在服务onStartCommand(Intent intent, int flags, int startId)方法。