Home » Android » Android: how to get the intent received by a service?

Android: how to get the intent received by a service?

Posted by: admin April 23, 2020 Leave a comment

Questions:

I’m starting a service with an intent where I put extra information.

How can I get the intent in the code of my service?

There isn’t a function like getIntent().getExtras() in service like in activity.

How to&Answers:

Override onStart() — you receive the Intent as a parameter.

Answer:

onStart() is deprecated now. You should use onStartCommand(Intent, int, int) instead.

Answer:

To pass the extras:

Intent intent = new Intent(this, MyService.class);
intent.putExtra(MyService.NAME, name);
...
startService(intent);

To retrieve the extras in the service:

public class MyService extends Service {  
    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        super.onStartCommand(intent, flags, startId);
        String name = intent.getExtras().getString(NAME);
        ...
    } 
    ...
}