最終更新:2016-07-06 (水) 18:36:50 (3208d)
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.content.Intent
コンストラクタ 処理内容 種類 Intent() 空のインテントを作成します。 - Intent(Intent o) コピーコンストラクタ - Intent(String action) アクションを指定してインテントを作成します。 暗黙的インテント Intent(String action, Uri uri) アクションとデータ(URI)を指定してインテントを作成します。 暗黙的インテント Intent(Context packageContext, Class<?> cls) 宛先のクラスを明示的に指定してインテントを作成します。 明示的インテント Intent(String action, Uri uri, Context packageContext, Class<?> cls) Create an intent for a specific component with a specified action and data. 明示的インテント
- actioin - 暗黙的インテントのアクション (Android/インテント/アクション)
- uri - 暗黙的インテントの引数となる値のUri (Android/インテント/URI)
- packageContext - 明示的インテントの遷移元のクラス
- cls - 明示的インテントの遷移先のクラス
Android/インテント/アクション
- action (String) - インテントの残りの部分 ( 特に データ と エクストラ フィールド ) の構造化の方法を決定する
- Intent.setAction?(String action)
オプション
- data (android.net.Uri) - 活動対象データの URI (Android/インテント/URI)
- extra - インテントをハンドリングするコンポーネントに配信されるべき追加情報のキーと値のペア
- Intent.putExtra
- Intent.putExtras?
- Intent.putIntegerArrayListExtra?
- Intent.putParcelableArrayListExtra?
- Intent.putStringArrayListExtra?
- component (android.content.ComponentName) - Specifies an explicit name of a component class to use for the intent.
- Intent.setComponent(ComponentName component)
インテントの送信
android.content.Context
- Context.bindService
- Context.removeStickyBroadcast?
- Context.sendBroadcast
- Context.sendOrderedBroadcast
- Context.sendStickyBroadcast?
- Context.sendStickyOrderedBroadcast?
- Context.startActivities?
- Context.startActivity
- Context.startIntentSender?
- Context.startService
- Context.stopService
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/ブロードキャストレシーバ
- Androidではインテントをブロードキャストする仕組みがあります。ブロードキャストされたインテントは、ブロードキャストレシーバにて受け取れます。