ホーム >  Android > インテント

Android -インテント-

インテントとは

インテントは、Androidアプリケーションのコンポーネント間で処理を受け渡しする場合に利用されます。

インテントを利用することにより、あるアクティビティから同じアプリケーションのアクティビティを呼び出すことや、 他のアプリケーションのアクティビティを呼び出すことが可能になります。

また、アクティビティ以外にもバックグラウンドで動作するサービスを呼び出すことや、 サービスからアクティビティを呼び出すこともできます。

インテントが保持する情報

  • アクション(action)

    アクションには、アクティビティアクションブロードキャストアクションの 2種類があります。

    アクティビティアクションは、他のアクティビティやサービスを起動するために「画像を表示したい」「電話をかけたい」 など大まかな動作の指定をします。

    ブロードキャストアクションは、「バッテリィが残り少ない」「システム起動完了」等、何らかの イベントが発生したことをアプリケーション全体に知らせるために指定します。

  • カテゴリ(category)

    カテゴリは、アクションを分類するための追加情報で、アクションとセットで指定します。

  • データ(data)

    Androidでは、IPネットワーク上で一般的によく使用される宛先を指定する為のURI表現を使って 呼び出し先を指定します。

    データは、他のアクティビティやサービスを呼び出すためのURIになります。

    android.net.Uriクラスを使用し、スキーム、ホスト、ポート、パス、クエリなどの情報を このクラスのオブジェクトに保持します。

  • 付加情報(extra)

    他のアクティビティやサービスに情報を引き渡したい場合に利用します。

    Bandleクラスを使用し、このクラスのオブジェクト内に付加情報のキーと値のセットで 保持します。

  • タイプ(type)

    タイプは、インテントのデータ種類をMIME形式で示した情報です。

  • フラグ(flag)

    フラグは、例えば、「バックグラウンドで起動」、「アクティビティがすでに起動している場合、 新たに起動しない」などアクティビティの起動が特別な場合に設定します。

インテントの分類

  • 明示的インテント

    起動するアクティビティやサービスを明示的に指定したインテントです。
    (動作内容として、具体的なクラス名を記述)

    主に同一アプリケーション内でアクティビティやサービスを連携する場合に使用します。

  • 暗黙的インテント

    起動するアクティビティやサービスを明確に指定せず、「なにをしたいか」だけを指定するインテントです。
    (動作内容だけを記述)

    主に他のアプリケーションを呼び出す場合に利用します。

    インテントを使用することで、他のアプリケーションをライブラリ感覚で使用できることがAndroidの特徴です。

    お互いのアプリケーション機能を最大限に利用しつつ、お互いの関係は、なるべく疎結合を保つという仕組みを インテントは、提供します。

Intentクラス

Intentクラスのコンストラクタ

  • Intent()
  • Intent(String action)
  • Intent(String action, Uri uri)
  • Intent(Context packageContext, Class<?> cls)
  • Intent(String action, Uri uri, Context packageContext, Class<?> cls)

actionはアクション種別


Intentクラスの主なメソッド

Intent addCategory(String category) カテゴリの追加
void removeCategory(String category) カテゴリの削除
Intent setFlags(int flags) インテントフラグの指定
Bundle getExtras() Bundleオブジェクトの取得
Intent putExtra(String name, int value) インテントへのパラメータ付加(int型)
Intent putExtra(String name, String value) インテントへのパラメータ付加(String型)