Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
ANDROID HACKS # 合宿編  ACTIVITY 再勉強 担当:かわらたん Twitter : @pfkawara Blog : http://kawara-tan.blogspot.com/ 09/19/11
この資料について <ul><li>この資料は下記の出典元をベースに勉強会で作成した資料です。 </li></ul><ul><ul><li>『 Android Hacks 』(株式会社ブリリアントサービス著、オライリー・ジャパン刊) </li><...
アジェンダ <ul><li>#6 Activity 入門 (p.41 ~ p.58) ベース  + Android Developers </li></ul><ul><ul><li>アクティビティとは </li></ul></ul><ul><u...
1.  アクティビティとは 09/19/11
1.  アクティビティとは <ul><li>画面を持った機能の単位 </li></ul><ul><ul><li>機能を Java で実装。画面構成 ( レイアウト ) は xml ファイルに記述 </li></ul></ul><ul><ul><...
1.  アクティビティとは <ul><li>MainActivity </li></ul>09/19/11 Activity クラスを継承 Activity が作られる時に呼ばれるメソッド ( 後述 ) この Activity の紐付くレイアウ...
1.  アクティビティとは <ul><li>レイアウトファイル </li></ul><ul><ul><li>layout フォルダにある xml ファイル </li></ul></ul>09/19/11 文字列を画面に表示するコンポーネント 縦...
<ul><li>Activity とレイアウトファイルの紐付け </li></ul>1.  アクティビティとは 09/19/11 Layout フォルダに xml ファイルを置いてビルドすると、自動で R.java に参照先 ID が追加される...
<ul><li>Strings.xml の値参照 </li></ul>1.  アクティビティとは 09/19/11 strings.xml に値を追加してビルドすると、自動で R.java に参照先 ID が追加される 参照する値の ID を指定
2. Activity のライフサイクル 09/19/11
2. Activity のライフサイクル <ul><li>アクティビティには人の一生と同じように、起動から終了までのライフサイクルが存在します。 </li></ul><ul><ul><li>動いている Activity は基本 1 個 </li...
2. Activity のライフサイクル <ul><li>3 種類の生存期間 </li></ul>09/19/11 http://developer.android.com/intl/ja/guide/topics/fundamentals/a...
<ul><li>各メソッド </li></ul>2. Activity のライフサイクル onResume() Activity がユーザの入力を受け付けるようになる時に呼び出される。この時点で Activity は Stack の一番上。 次...
<ul><li>各メソッド ( これらメソッド 3 種は return した後にプロセスが kill される可能性がある。 ) </li></ul>2. Activity のライフサイクル onPause() Activity がバックグラウン...
<ul><li>その他のメソッド </li></ul>2. Activity のライフサイクル 09/19/11 http://developer.android.com/intl/ja/guide/topics/fundamentals/ac...
<ul><li>その他のメソッド </li></ul><ul><ul><li>他にもある ( はず ) </li></ul></ul>2. Activity のライフサイクル 09/19/11 http://developer.android....
<ul><li>別 Activity へのデータの引き継ぎ </li></ul><ul><ul><li>AActivity が startActivity() で BActivity を呼んだ時、以下のメソッドの順で呼ばれる。 </li></u...
3.  状態を保存、復元する 09/19/11
3.  状態を保存、復元する <ul><li>Activity( 画面 ) の状態を保存、復元する </li></ul><ul><ul><li>例:ユーザが選択した画像 </li></ul></ul><ul><ul><ul><li>ユーザがテキ...
3.  状態を保存、復元する <ul><li>Activity( 画面 ) の状態を保存、復元する </li></ul>09/19/11
参考 URL <ul><li>Android Developers </li></ul><ul><ul><li>http://developer.android.com/intl/ja/index.html </li></ul></ul>09/...
Upcoming SlideShare
Loading in …5
×

Android Hacks - 合宿 Activity

2,821 views

Published on

「Android Hacks ―プロが教えるテクニック & ツール」(株式会社ブリリアントサービス 著)を教材とした勉強会でのまとめ資料です。

http://www.oreilly.co.jp/books/9784873114569/

  • Be the first to comment

Android Hacks - 合宿 Activity

  1. 1. ANDROID HACKS # 合宿編 ACTIVITY 再勉強 担当:かわらたん Twitter : @pfkawara Blog : http://kawara-tan.blogspot.com/ 09/19/11
  2. 2. この資料について <ul><li>この資料は下記の出典元をベースに勉強会で作成した資料です。 </li></ul><ul><ul><li>『 Android Hacks 』(株式会社ブリリアントサービス著、オライリー・ジャパン刊) </li></ul></ul><ul><li>この本の紹介ページが下記にあります。 </li></ul><ul><ul><li>http://www.oreilly.co.jp/books/9784873114569/ </li></ul></ul>09/19/11
  3. 3. アジェンダ <ul><li>#6 Activity 入門 (p.41 ~ p.58) ベース + Android Developers </li></ul><ul><ul><li>アクティビティとは </li></ul></ul><ul><ul><li>アクティビティのライフサイクル </li></ul></ul><ul><ul><li>状態を保存、復元する </li></ul></ul>09/19/11
  4. 4. 1. アクティビティとは 09/19/11
  5. 5. 1. アクティビティとは <ul><li>画面を持った機能の単位 </li></ul><ul><ul><li>機能を Java で実装。画面構成 ( レイアウト ) は xml ファイルに記述 </li></ul></ul><ul><ul><li>1 画面 : 1Activity </li></ul></ul><ul><ul><ul><li>Android 3.0 では fragment を用いると、 n 画面: 1Activity </li></ul></ul></ul><ul><ul><ul><li>http://developer.android.com/intl/ja/sdk/android-3.0.html </li></ul></ul></ul><ul><li>アプリケーションは複数の Activity から構成される </li></ul><ul><ul><li>AndroidManifest.xml で使用する Activity を宣言 </li></ul></ul><ul><ul><li>アプリを起動した時に呼ばれる Activity -> ”Main Activity” </li></ul></ul>09/19/11
  6. 6. 1. アクティビティとは <ul><li>MainActivity </li></ul>09/19/11 Activity クラスを継承 Activity が作られる時に呼ばれるメソッド ( 後述 ) この Activity の紐付くレイアウトを指定 ( 後述 )
  7. 7. 1. アクティビティとは <ul><li>レイアウトファイル </li></ul><ul><ul><li>layout フォルダにある xml ファイル </li></ul></ul>09/19/11 文字列を画面に表示するコンポーネント 縦一列または横一列にコンポーネントを並べるレイアウト strings.xml の hello を参照 ( 後述 ) fill_parent : 親のビューとできるだけ同じ大きさまで広がる wrap_content : コンポーネント自身が最低限必要な大きさまで広がる
  8. 8. <ul><li>Activity とレイアウトファイルの紐付け </li></ul>1. アクティビティとは 09/19/11 Layout フォルダに xml ファイルを置いてビルドすると、自動で R.java に参照先 ID が追加される Activity と紐づくレイアウトの ID を指定
  9. 9. <ul><li>Strings.xml の値参照 </li></ul>1. アクティビティとは 09/19/11 strings.xml に値を追加してビルドすると、自動で R.java に参照先 ID が追加される 参照する値の ID を指定
  10. 10. 2. Activity のライフサイクル 09/19/11
  11. 11. 2. Activity のライフサイクル <ul><li>アクティビティには人の一生と同じように、起動から終了までのライフサイクルが存在します。 </li></ul><ul><ul><li>動いている Activity は基本 1 個 </li></ul></ul><ul><ul><li>新しい Activity が作られると、前に動いていた Activity はスタックに積まれる (Back Stack) </li></ul></ul><ul><ul><li>状態変化に応じて処理を記述できるように、 onStart() などの各メソッドが用意されている。 </li></ul></ul>09/19/11 http://developer.android.com/intl/ja/guide/topics/fundamentals/activities.html
  12. 12. 2. Activity のライフサイクル <ul><li>3 種類の生存期間 </li></ul>09/19/11 http://developer.android.com/intl/ja/guide/topics/fundamentals/activities.html The entire lifetime とある 1Activity 全体の生存期間 The visible lifetime 目に見えているけど入力や操作ができない期間 The foreground lifetime 入力や操作ができる期間
  13. 13. <ul><li>各メソッド </li></ul>2. Activity のライフサイクル onResume() Activity がユーザの入力を受け付けるようになる時に呼び出される。この時点で Activity は Stack の一番上。 次のメソッド: onPause() 09/19/11 http://developer.android.com/intl/ja/guide/topics/fundamentals/activities.html onStart() Activity が表示される直前に呼び出される。 次のメソッド:フォアグラウンドになる場合は onResume()           hidden の場合は onPause() onCreate() Activity が生成される時に呼ばれる。 この Activity 全体に関わるセットアップをここで行う。 onSaveInstanceState()( 後述 ) で保存された情報がある場合は、引数の Bundle にその情報が渡される。 次のメソッド: onStart()
  14. 14. <ul><li>各メソッド ( これらメソッド 3 種は return した後にプロセスが kill される可能性がある。 ) </li></ul>2. Activity のライフサイクル onPause() Activity がバックグラウンドになる直前に呼ばれる。データの保存、アニメーションの停止などを行う。 次のメソッド:フォアグラウンドに戻れるなら onResume()         ユーザから目に見えなくなったら onStop() 09/19/11 http://developer.android.com/intl/ja/guide/topics/fundamentals/activities.html onStop() Activity がしばらく使われなくなった時に呼ばれる ( 他の Activity が起動してバックグラウンドになった時や、アプリが終了する直前 ) 次のメソッド:フォアグラウンドに戻れるなら onRestart()          そうでないなら onDestroy() onCreate() Activity が破棄されると直前に呼ばれる。 次のメソッド:無い ( `・ ω ・ ´)
  15. 15. <ul><li>その他のメソッド </li></ul>2. Activity のライフサイクル 09/19/11 http://developer.android.com/intl/ja/guide/topics/fundamentals/activities.html onRestart() onStop() が呼ばれた後に、他の Activity が終了する等で、再び Activity が表示される時に呼び出される。 次のメソッド: onStart() onSaveInstanceState(Bundle)( 後述 ) インスタンスの状態を保存すべきタイミング (onPause() または onStop() の直前 ) で呼ばれる。引数の Bundle に対して putString() で値を保存する。 次のメソッド: onPause() または onStop() onRestoreInstanceState(Bundle)( 後述 ) インスタンスの状態を復元すべきタイミング () で呼ばれる。引数の Bundle に対して getXXX(key) で値を取得する。 次のメソッド: onPause() または onStop() onSaveInstanceState(Bundle)( 後述 ) インスタンスの状態を保存すべきタイミング (onPause() または onStop() の直前 ) で呼ばれる。引数の Bundle に対して putXXX(key, value) で値を保存する。 次のメソッド: onPause() または onStop()
  16. 16. <ul><li>その他のメソッド </li></ul><ul><ul><li>他にもある ( はず ) </li></ul></ul>2. Activity のライフサイクル 09/19/11 http://developer.android.com/intl/ja/guide/topics/fundamentals/activities.html
  17. 17. <ul><li>別 Activity へのデータの引き継ぎ </li></ul><ul><ul><li>AActivity が startActivity() で BActivity を呼んだ時、以下のメソッドの順で呼ばれる。 </li></ul></ul>2. Activity のライフサイクル 09/19/11 http://developer.android.com/intl/ja/guide/topics/fundamentals/activities.html AActivity onPause() BActivity onCreate() onStart() onResume() onStop() データはここで (DB やファイルに ) 保存
  18. 18. 3. 状態を保存、復元する 09/19/11
  19. 19. 3. 状態を保存、復元する <ul><li>Activity( 画面 ) の状態を保存、復元する </li></ul><ul><ul><li>例:ユーザが選択した画像 </li></ul></ul><ul><ul><ul><li>ユーザがテキストボックスに入力した文字列や、チェックボックスの ON/OFF などはシステムが保存、復元してくれる </li></ul></ul></ul><ul><li>onSaveInstanceState(Bundle) </li></ul><ul><ul><li>状態を保存する処理を実装… Bundle#putXXX(key,value) </li></ul></ul><ul><li>onRestoreInstanceState(Bundle) </li></ul><ul><ul><li>状態を復元する処理を実装… Bundle#getXXX(key) </li></ul></ul><ul><li>あくまで UI に関する状態保持のみに使う </li></ul>09/19/11 http://developer.android.com/intl/ja/guide/topics/fundamentals/activities.html
  20. 20. 3. 状態を保存、復元する <ul><li>Activity( 画面 ) の状態を保存、復元する </li></ul>09/19/11
  21. 21. 参考 URL <ul><li>Android Developers </li></ul><ul><ul><li>http://developer.android.com/intl/ja/index.html </li></ul></ul>09/19/11

×