【Android】Intentって結局なんやねん
これまでAndroidをちょこちょこ触って来ましたが本質の部分では理解していないところだらけでヤバイ。
Intentに関しては漠然と「なんか起動するときとかメッセージのやり取りするやつみたいな?」というイメージでした。
ということで一度しっかり(当社比)調べてみようと思います。
Google docによると「An intent is an abstract description of an operation to be performed.」G訳「インテントは、実行される操作の抽象的な記述です。」
らしいです!!
????????????
なるほど分からん。
そこでIntent関連でQiitaの有能記事を発見しました。
intent.putExtra("SelectedPictNo", position);
...tips 実際にはこの処理で、IntentのBundleオブジェクトにデータが格納されている。
つまり値の受け渡しに関しては
1.IntentにBundleが内包されている(Bundleってなんやねん)※近いうちにBundleも調べ直そう...
2.Intent内Bundleに値をセット
3.Intent受け取り先で内包されているBundleから値を読み取る。
内部的にはこの手順で行われているわけですね。なんとなくわかった。
後、Intent作成時コンストラクタの第一引数にcontextとかthisとかactivityとか指定するのはなぜ??なんでもいいんかい!という疑問は
こちらの記事にあるように
引数に渡された ApplicationContext は、内部で
「アプリケーションのパッケージ名」 を取得するために使ってるだけ。
つまり
1.Intentは起動するアプリの識別としてアプリケーションのパッケージ名と起動するクラス名の二つの情報が必要である。(そういえばIntentはアプリ間でのやり取りにも使うもんね)
2.アプリケーションのパッケージ名はContextだろうがActivityだろうが持っているので問題なし。※ActivityはContextからの派生オブジェクト
ということですね。
記事引っ張ってきただけになったけど...疑問は解消されたのでよし!!!