1. ホーム
  2. android

インテントを用いてアクティビティからサービスへデータを渡す

2023-11-05 03:29:04

質問

Androidのデータを取得する方法 Service から渡されたデータを取得する方法は? Activity ?

どのように解決するのですか?

最初のコンテキスト(アクティビティ/サービスなど)

Serviceの場合、onStartCommandをオーバーライドする必要があり、そこで直接 intent :

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

いくつかのオプションがあります。

1) バンドル から インテント :

Intent mIntent = new Intent(this, Example.class);
Bundle extras = mIntent.getExtras();
extras.putString(key, value);  

2) 新規バンドル作成

Intent mIntent = new Intent(this, Example.class);
Bundle mBundle = new Bundle();
mBundle.extras.putString(key, value);
mIntent.putExtras(mBundle);

3) putExtra() のショートカットメソッドを使用します。

Intent mIntent = new Intent(this, Example.class);
mIntent.putExtra(key, value);

新しいコンテキスト(アクティビティ/サービスなど)

Intent myIntent = getIntent(); // this getter is just for example purpose, can differ
if (myIntent !=null && myIntent.getExtras()!=null)
     String value = myIntent.getExtras().getString(key);
}

note: バンドルには、すべてのプリミティブ型、Parcelable、Serializableに対して "get"と"put"のメソッドがあります。私はデモのためにStringを使っただけです。