在服务中调用getIntent方法

Cod*_*ing 20 service android android-intent

我必须将参数从MyActivity.class传递给TestService.class.MyActivity是一个Activity类,TestService是我用来发送消息的服务.我必须将参数从Activity传递给Service,但是当我Intent i = getIntent();在服务类中调用时,我得到一个错误getIntent()是未定义的.

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

Lun*_*nar 59

像这样开始你的服务;

 Intent ir=new Intent(this, Service.class); 
 ir.putExtra("data", data); 
 this.startService(ir); 
Run Code Online (Sandbox Code Playgroud)

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

然后从服务中检索数据;

data=(String) intent.getExtras().get("data"); 
Run Code Online (Sandbox Code Playgroud)

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

服务

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

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

IntentService

protected void onHandleIntent(Intent intent) {
    data=(String) intent.getExtras().get("data"); 
}
Run Code Online (Sandbox Code Playgroud)

protected abstract void onHandleIntent(Intent intent)

  • 如果我需要在`onCreate()`中获得意图怎么办? (4认同)