BuzBuza
BuzBuza

Reputation: 607

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

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.

Upvotes: 32

Views: 35700

Answers (3)

David Miguel
David Miguel

Reputation: 14380

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);
        ...
    } 
    ...
} 

Upvotes: 5

Alagu
Alagu

Reputation: 2854

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

Upvotes: 84

CommonsWare
CommonsWare

Reputation: 1006614

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

Upvotes: 42

Related Questions