最終更新:2016-07-06 (水) 18:36:50 (2845d)  

Android/インテント
Top / Android / インテント

アクティビティ間やアプリケーション間でやり取りするメッセージの役割を果たすもの

https://developer.android.com/guide/components/intents-filters.html

種類

明示的インテント

  • Activityをクラス名で指定して呼び出す方法
    Intent intent = new Intent(this, TargetActivity.class);
    startActivity(intent);

暗黙的インテント

  • 相手を指定せずに送るインテントで、システムに対してアクションとパラメータを送る
  • システムは登録されているアクティビティの中からアクションとパラメータの組み合わせを元に起動するアクティビティを決定する (インテントフィルタ)
    Intent intent = new Intent(android.content.Intent.ACTION_VIEW);
    intent.setData(Uri.parse("http://www.google.com/"));
    startActivity(intent);
  • startActivity() に送る暗黙的インテントを処理できるアプリがユーザーが持っていない場合もあります。
  • その場合、呼び出しは失敗し、アプリはクラッシュします。アクティビティが必ずインテントを受け取るようにするには、Intent オブジェクトで resolveActivity() を呼び出します。

主な情報

android.content.Intent

コンストラクタ

Android/インテント/アクション

  • action (String) - インテントの残りの部分 ( 特に データ と エクストラ フィールド ) の構造化の方法を決定する
    • Intent.setAction?(String action)

オプション

  • type (String) - データの MIMEタイプ。
    • Intent.setType?(String type)
    • Intent.setTypeAndNormalize?(String type)
  • class (Class<?>,String)
    • Intent.setClass?(Context packageContext, Class<?> cls)
    • Intent.setClassName?
  • category (String) - インテントをハンドリングすべきコンポーネントの種類に関する付加的な情報を含んだ文字列
    • Intent.addCategory?
  • clipdata (android.content.ClipData?)
    • Intent.setClipData?
  • extra - インテントをハンドリングするコンポーネントに配信されるべき追加情報のキーと値のペア
    • Intent.putExtra
    • Intent.putExtras?
    • Intent.putIntegerArrayListExtra?
    • Intent.putParcelableArrayListExtra?
    • Intent.putStringArrayListExtra?
  • flags (int)
    • Intent.addFlags?(int flags)
    • Intent.setFlags?(int flags)
  • package (String)
    • Intent.setPackage?(String packageName)
  • selector (Intent)
    • Intent.setSelector?

インテントの送信

android.content.Context

android.app.Activity

  • Activity.startActivities?
  • Activity.startActivity
  • Activity.startActivityForResult
  • Activity.startActivityFromChild?
  • Activity.startActivityFromFragment?
  • Activity.startActivityIfNeeded?
  • Activity.startIntentSender?
  • Activity.startIntentSenderForResult?
  • Activity.startIntentSenderFromChild?
  • Activity.startNextMatchingActivity?

インテントの受信

AndroidManifest.xmlに受け取るインテントの種別を記述

Android/ブロードキャストレシーバ

ペンディングインテント?

関連

参考