ホーム > 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型)
Copyright © 2018   MitoRoid  All Rights Reserved.