スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

インテントの仕組み?

ここまでAndroid開発体験やってきて、インテントとは何だろう?と思っていたけれど、頭を整理するとこんな感じなのかな。


インテントは単なるアクティビティへ与える情報格納クラス。これをstartActivityメソッド等の引数として渡して、Android SDK?OS?に格納した情報を教えてあげる。Androidは、もらった情報と呼び出されたstartActivity等のメソッドをもとにして、次に行う操作を決定する(RTOSでのディスパッチみたいな)。例えばstartActivityなら、引数で与えられたIntentという情報格納クラスに指定されているアクティビティを起動する。と同時に、Android自体はもらったIntent情報を、アクティビティと対応付けてどこかに保管しておく。起動されたアクティビティは、Androidに対して、自分に対応付けられているIntent情報をくれ、と言うためにgetStringExtraのようなメソッドを使ってAndroidに問い合わせる。Androidは、startActivity等で引数で与えられたIntent情報を持っているので、問い合わせに対してレスポンスを返すことができる。こうしてアクティビティ間でデータの受け渡しを実現する、というイメージ?


android_intent_activity.png

上の図は、最初の説明を超簡単に図示したもの。Activity AからのIntentは、いったんAndroid SDK(OS)にわたって管理される。Activity BもAndroid SDK(OS)を介して、自分に関連付けられているIntentをもらう。こうイメージすると理解しやすいかも。RTOSだとメッセージキューとかイベントフラグとかに似てるかも。

テーマ : プログラミング
ジャンル : コンピュータ

コメントの投稿

非公開コメント

プロフィール

sepiablue

Author:sepiablue
組込みソフトウェアエンジニアやってます。普段はC言語使い。
趣味はプログラミング、京都旅行で神社巡り。
AndroidアプリをMacで開発中。

最新記事
スポンサードリンク
スポンサードリンク
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
QRコード
QRコード
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。