24

我必须将参数从 MyActivity.class 传递给 TestService.class。MyActivity 是一个 Activity 类,而 TestService 是我为发送消息而制作的一个服务。我必须将参数从 Activity 传递给服务,但是当我调用Intent i = getIntent();服务类时,我收到错误getIntent() is undefined

那么,如何将参数从我的 Activity 发送到 Service?

4

2 回答 2

68

像这样开始你的服务;

 Intent ir=new Intent(this, Service.class); 
 ir.putExtra("data", data); 
 this.startService(ir); 

您附加您的数据作为额外的意图。

然后从服务中检索数据;

data=(String) intent.getExtras().get("data"); 

因此,您可以从 onHandleIntent 或 onStartCommand Intent 参数访问您的参数。(取决于您正在运行的服务类型)例如;

服务

protected void onStartCommand (Intent intent, int flags, int startId) {
    data=(String) intent.getExtras().get("data"); 
}

public int onStartCommand (Intent intent, int flags, int startId)

意向服务

protected void onHandleIntent(Intent intent) {
    data=(String) intent.getExtras().get("data"); 
}

protected abstract void onHandleIntent(意图意图)

于 2012-08-14T09:19:51.187 回答
2

当您以意图(具有数据)启动服务时,该意图会在方法
onStart(Intent intent, int startId)

onStartCommand (Intent intent, int flags, int startId)
{
this **intent** is your intent with data
}

您的 Service.So 以意图作为参数从该方法接收您的数据

于 2012-08-14T09:34:25.323 回答