Androidアプリを作成したい人必見!!Androidアプリの基本動作はもちろんのこと、本には載っていない、調べても見つからない、ソースを修正するだけでは解決できない、アプリ開発者が直面する問題の解決方法についても記載していきます。 *基本的にはレイアウトファイル(xml)を使わないソースを載せております。
2013年1月14日月曜日
Contextとは(getApplicationContext(),Activity,getApplication)
トーストやボタンやラベル生成時、intentの際にもに用いる
getApplicationContext()
getApplication()
this
①Toast.makeText(getApplicationContext(), aItems[result_item], Toast.LENGTH_LONG).show();
②Button button = new Button(getApplication());
③Intent intent = new Intent(this, SubActivity.class);
自分が過去に紹介したソースでも
上記のように使用しております。
使いわけをしているかと言われると。。。。
特にしていなくてですね。。。
過去ソースを見ても、
見事に3つをランダムに万遍なく用いています。。。。。
JAVAのランダム係数よりも見事なランダム具合!!
気持ちはgetApplicationContext()を使おうとは思っているのですが。。
そんなことは有りませんでした。。
そこで、Contextについて調べたところ、
Contextを用いると、アプリの外部情報を参照できるようです。
パーミッションやResフォルダー内の画像などのリソース
リリース情報などなど。。。
参照元はこちら
http://developer.android.com/intl/ja/reference/android/content/Context.html
あっ、英語のサイトなので、
英語がわからない人には難しいですので、
気を付けてください。
ついでにですが、
自分はGoogleの翻訳機能を使っています。
英語はわかりません。
これだけではよくわからないので、
"Context getApplicationContext Actiityどっち"
とGoogleで検索させていただき、いろいろなサイトを見たところ。。。。。
うーん。よくわからないのです。
Contextの引数は情報が多すぎてメモリーリークを引き起こす事が
よくあるらしいです。。
それを防止するためにも引数は必要最低現の情報のみ渡すべき。と
thisはそのプロジェクト情報
getApplicationContext()はそこのActivity情報
という認識です。
で、結局上記の3つどのような場面でどれを選ぶのが適切なのか?
ちょっと、わかりませんでした。。。
いや、恥ずかしい。。
とりあえず、どれでもよさそうなので、
情報量が少ない
getApplicationContext()
を使っていこうと思います。
文字列長いし
難しそうだし
共有①
・RadioButton生成時にgetAppliationContext()を渡したら、setTextで渡した文字列が
画面に表示されなかった。getTextすると文字列をしゅとくできたけど。。。。
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿