launchMode 属性
"standard"(デフォルト モード)
"singleTop"
"singleTask"
"singleInstance"
FLAG_ACTIVITY_NEW_TASK
FLAG_ACTIVITY_CLEAR_TOP
FLAG_ACTIVITY_RESET_TASK_IF_NEEDED
FLAG_ACTIVITY_SINGLE_TOP
インテントに付ける情報の、基本的なカテゴリとして以下4つがあり
ACTION | 実行する動作を記述する |
CATEGORY | カテゴリによる絞込みを実施 |
DATA | URI情報を付加 |
TYPE |
コンスタント | ターゲットコンポーネント | アクション |
ACTION_CALL | アクティビティ | 通話を開始する。 |
ACTION_EDIT | アクティビティ | ユーザ編集のデータを表示する。 |
ACTION_MAIN | アクティビティ | データ入力なしかつ出力の返却なしで、タスクの初期アクティビティとして開始する。 |
ACTION_SYNC | アクティビティ | モバイルデバイス上のデータを使ってサーバのデータを同期化する。 |
ACTION_BATTERY_LOW | ブロードキャストレシーバ | バッテリー残量が少ないときの警告。 |
ACTION_HEADSET_PLUG | ブロードキャストレシーバ | ヘッドセットがデバイスに取り付けられた、またはそこから取り外された。 |
ACTION_SCREEN_ON | ブロードキャストレシーバ | スクリーンが ON になった。 |
ACTION_TIMEZONE_CHANGED | ブロードキャストレシーバ | タイムゾーンの設定が変更された。 |
コンスタント | 意味 |
CATEGORY_BROWSABLE | リンクで参照されているデータを表示するためにブラウザにより安全に呼び出すことができるターゲットアクティビティ。例えば、イメージまたは e-mail メッセージ。 |
CATEGORY_GADGET | ガジェットのホストになっている別のアクティビティを内部に組込み可能なアクティビティ。 |
CATEGORY_HOME | ホームスクリーンを表示するアクティビティで、最初の画面が見えるのはデバイスがオンになったとき、または HOME キーが押されたとき。 |
CATEGORY_LAUNCHER | タスクの初期アクティビティになれるまたはアプリケーションランチャーのトップレベルにリストされているアクティビティ。 |
CATEGORY_PREFERENCE | プリファレンスパネルがターゲットのアクティビティ。 |
参考: Think IT - 第4回:Androidの重要な機能、インテント
Sampleソース付き
参考: 日本Androidの会 - インテントを発行してみよう
-IntentクラスのputExtra()を使用し、様々な引き渡したい情報を付加させる
-putExtra()には2つの引数を渡す。一つはキー。一つは渡したい内容。
-真偽値、数値、文字列、配列。様々な内容を添付可能
String型:getStringExtra()
boolean型:getBooleanExtra()
int型:getIntExtra()
呼び出し時にstartActivityではなく、
呼び出し時にstartActivityForResultを用いる
結果は、onActivityResult()を用意して、取得する
参考 : 「コードを貼り付けながら。」さんのページ - Intent(インテント)連携をまとめてみる
参考 : んぱかさんのページ
MAIN_ACTION
VIEW_ACTION
EDIT_ACTION
DELETE_ACTION
DEFAULT_ACTION
PICK_ACTION
GET_CONTENT_ACTION
RUN_ACTION
INSERT_ACTION
CALL_ACTION
DIAL_ACTION
SENDTO_ACTION
ANSWER_ACTION
コンストラクタIntentやsetComponentなどによって明示的に指定。相手先が明確。
Intent intent = new Intent(this, xxx.xxx.xxx.class); //xxxにはパッケージのパスが入る
startActivity(intent);
jpegを送信するアクティビティを起動
Intent intent = new Intent();
intent.setAction(Intent.ACTION_SEND);
intent.setType("image/jpeg");
intent.putExtra(Intent.EXTRA_STREAM, Uri.parse("jpegファイルの場所"));
startActivity(intent);
http://www.taosoftware.co.jp/blog/2009/03/alarmmanager_5.html
ブロードキャストの多くが元々はシステム コード。以下のようなモノを検知する。
・時刻が変更された
・端末が起動された
・アプリのインストール
・バッテリー残量低下
・ユーザーが言語設定を変更
・写真が撮影された
・タイム ゾーンが変更された
http://toru.tea-nifty.com/toru204e/2009/12/post-a4e3.html
インテントフィルタは、2方法ある
・プログラム内にIntent Filter クラスを使って直接記述
・マニフェストファイル内に intent-filterタグで記述 (一般的)
priority
action
category
type
scheme
authority
path
コード内で作成して登録したブロードキャストレシーバの場合、インテントフィルタは、Intent Filter オブジェクトとして直接インスタンス化される。それ以外のっ全てのフィルタは、マニフェストで設定する
http://www.techdoctranslator.com/android/practices/ui_guidelines/activity_task_design
サービスもインテントで起動可能
am start -a android.intent.action.VIEW -d http://localhost/test.jpeg am start -a android.intent.action.VIEW -d http://abcde.com/test.gif