インテント (Intent)

アプリケーションの主要な3つのコンポーネント、

これらをアクティブにするメッセージ、これをインテントと呼びます。これにより実行時に各要素を紐づけ、プロセス間通信を実現します。このインテントは、2種類の基本情報と、それを補足する4種類の補足情報により構成されます。

Intentのクラス階層

  • java.lang.Object
    • android.content.Intent
      • LabeledIntent
Intent | Android Developers

インテントの使用方法

インテントには、

  • action
  • data
  • category
  • type
  • component
  • extras

インテントの作成

Intent( Context packageContext, Class<?> cls )
Intent - Intent | Android Developers

エキストラ インテントによる情報の受け渡し

情報の登録

public Intent putExtra( String name, String value )
putExtra - Intent | Android Developers

インテントにデータを追加する。

Intent intent = new Intent( ..., ... );
intent.putExtra( "Foo", 123 );

情報の取得

int getInt( String key )
getInt - Bundle | Android Developers
Bundle extras = getIntent().getExtras();
int x = extras.getInt( "Foo" );

インテント フィルタ (Intent Filter)

インテント フィルタは、アクティビティやサービスなどの属性が扱えるインテントを明示し、暗黙的なインテントの送り先の決定に利用されます。

インテントには、おもに

  • アクション (action)
  • データ (data)
  • カテゴリ (categories)

があります。そしてインテント フィルタにこれらのインテントを追加するメソッドが、それぞれ次のように用意されています。

プログラムによる定義

コンストラクタ

public IntentFilter ()
IntentFilter - IntentFilter | Android Developers
public IntentFilter (String action)
public IntentFilter (String action, String dataType)
public IntentFilter (IntentFilter o)

インテントの追加

intentFilter = new IntentFilter();
intentFilter.addAction(Intent.ACTION_VIEW);

インテントは文字列で指定しますが、既存のものはIntentクラスに定数として定義されています。Constants - Intent | Android Developers

マニフェスト ファイルによる定義

マニフェスト ファイル

<intent-filter android:priority="1">
  <action android:name="" />
  <category android:name="" />
</intent-filter>
Androidの情報サイトから、まとめて検索