我必须将参数从MyActivity.class传递给TestService.class。 MyActivity是一个Activity类,TestService是我用来发送消息的服务。我必须将参数从Activity传递给服务,但是当我在服务类中调用Intent i = getIntent();
时,我收到错误 getIntent()未定义。
那么,如何将参数从我的活动发送到服务?
答案 0 :(得分:54)
像这样开始你的服务;
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)
<强> IntentService 强>
protected void onHandleIntent(Intent intent) {
data=(String) intent.getExtras().get("data");
}
答案 1 :(得分:2)
当您使用意图启动服务(拥有数据)时,会在方法
中收到该意图
onStart(Intent intent, int startId)
或
onStartCommand (Intent intent, int flags, int startId)
{
this **intent** is your intent with data
}
您的服务。从此方法接收您的数据,其意图为参数