web-dev-qa-db-ja.com

Android:サービスが意図を受け取る方法は?

追加情報を入れることを目的にサービスを開始しています。

サービスのコードでインテントを取得するにはどうすればよいですか?

アクティビティのようなサービスにはgetIntent().getExtras()のような関数はありません。

30
BuzBuza

onStart()をオーバーライドします-パラメータとしてIntentを受け取ります。

40
CommonsWare

onStart()は非推奨になりました。代わりに onStartCommand(Intent, int, int) を使用してください。

83
Alagu

エクストラを渡すには:

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

サービスの追加情報を取得するには:

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