Android Lifecycle再復習 / Review the Android Lifecycle callback methods again

Android Lifecycle再復習 / Review the Android Lifecycle callback methods again

Android研究&発表会#1で発表した資料です!
https://arap.connpass.com/event/146619/

Ce6acc3536b0e0340b5f0569d3394c9c?s=128

Yasutaka Kawamoto

September 28, 2019
Tweet

Transcript

  1. Android Lifecycle࠶෮श Androidݚڀ&ൃදձ #1 2019/09/28 1

  2. • Տຊ ହ޹(͔Θ΋ͱ ΍͔ͨ͢) • ॴଐɿגࣜձࣾ tech vein 
 (େࡕࢢதԝ۠ຊொ)

    • ϞόΠϧΞϓϦΤϯδχΞ
 (AndroidଟΊɺiOS΋ŧŔŕŪũƄŝſ) • GitHub: kwmt ɺtwitter: kwmt27 • Google I/O2018 ॳࢀՃ • ෱Ԭग़਎ • ΫϥϑτϏʔϧ޷͖ 2 ࣗݾ঺հ
  3. 3 ࠷ۙݸਓͰϦϦʔεͨ͠AndroidΞϓϦ https://play.google.com/store/apps/details?id=net.kwmt27.qrcode_reader

  4. AndroidͷϥΠϑαΠΫϧ ͪΌΜͱཧղͯ͠·͔͢ʁ 4

  5. 5

  6. 5

  7. 5

  8. ཧղͨ͠ؾʹͳ͍ͬͯ·ͤΜ͔ʁ 6

  9. ๻͸ཧղͨ͠ؾʹͳ͍ͬͯ·ͨ͆͠ 7

  10. ϥΠϑαΠΫϧʹ͍ͭͯ෮श͍ͨ͠ͱࢥ͍·͢ɻ 8

  11. 9 ΞδΣϯμ • ϥΠϑαΠΫϧͱ͸ʁ • ϥΠϑαΠΫϧͷ֤ίʔϧόοΫͷ
 υΩϡϝϯτΛ֬ೝ͢Δ • ײ૝

  12. 10 ಈ࡞֬ೝ • Android 10 • LaunchMode = Default

  13. 11 ϥΠϑαΠΫϧͱ͸ʁ • AndroidΞϓϦ͕ىಈ͔ͯ͠Βऴྃ͢Δ·ͰΛϥΠϑαΠ Ϋϧͱͯ͠ఆ͍ٛͯ͠·͢ɻ • ىಈɾऴྃ͸΋ͪΖΜɺதஅ΍࠶ىಈͳͲ΋ؚ·Ε· ͢ɻ • ͜ΕΒ͸AndroidϑϨʔϜϫʔΫ͔ΒͷίʔϧόοΫͱ͠

    ͯ஌Δ͜ͱ͕Ͱ͖·͢ɻ • ͨͱ͑͹ɺΞϓϦىಈ࣌ͷίʔϧόοΫ͸onCreateɺऴ ྃ࣌͸onDestoryͳͲͰ͢ɻ
  14. 12 ϥΠϑαΠΫϧͱ͸ʁ • Androidʹ͸Activity΍FragmentͷଞʹServiceͳͲͷίϯ ϙʔωϯτຖʹϥΠϑαΠΫϧ͕نఆ͞Ε͍ͯ·͢ɻ • ࠓճ͸ओʹActivityͱFragmentͷϥΠϑαΠΫϧʹ͍ͭ ͯΈ͍͖͍ͯͨͱࢥ͍·͢ɻ

  15. 13 ૝ఆΞϓϦ • 1ͭͷActivity • 2ͭͷFragment͕͋Δ • Activityʹ͋ΔϘλϯ(FAB)ΛΫϦοΫ͢Δͱɺ2ͭ໨ͷը ໘ʹભҠ͢Δ͜ͱ͕Ͱ͖Δ •

    ભҠઌͷFragment͔ΒόοΫΩʔͰભҠݩͷFragmentʹ ໭Δ͜ͱ͕Ͱ͖Δ
  16. 14

  17. 14

  18. ͜ͷΞϓϦ͕ ىಈ͢Δͱ͖ͱऴྃ͢Δͱ͖ɺ ͲͷΑ͏ͳίʔϧόοΫ͕ ݺͼग़͞ΕΔ͔֬ೝ͍ͨ͠ͱࢥ͍·͢ɻ 15

  19. 16 ΞϓϦىಈ࣌ͷΠϝʔδ

  20. 16 ΞϓϦىಈ࣌ͷΠϝʔδ

  21. ΞϓϦىಈ࣌ͷϥΠϑαΠΫϧ Activity Fragment ࣌ؒ

  22. ΞϓϦىಈ࣌ͷϥΠϑαΠΫϧ onCreate Activity Fragment ࣌ؒ

  23. ΞϓϦىಈ࣌ͷϥΠϑαΠΫϧ onCreate onAttach onCreate onCreateView onActivityCreated onViewStateRestored onStart Activity Fragment

    ࣌ؒ
  24. ΞϓϦىಈ࣌ͷϥΠϑαΠΫϧ onCreate onAttach onCreate onCreateView onActivityCreated onViewStateRestored onStart onResume onStart

    Activity Fragment ࣌ؒ
  25. ΞϓϦىಈ࣌ͷϥΠϑαΠΫϧ onCreate onAttach onResume onCreate onCreateView onActivityCreated onViewStateRestored onStart onResume

    onStart Activity Fragment ࣌ؒ
  26. 18 ΞϓϦऴྃ࣌ͷΠϝʔδ

  27. 18 ΞϓϦऴྃ࣌ͷΠϝʔδ

  28. 19 ΞϓϦऴྃ࣌ͷϥΠϑαΠΫϧ Activity Fragment ࣌ؒ ※super.onHogeͷޙͷλΠϛϯάͰ֬ೝ

  29. 19 ΞϓϦऴྃ࣌ͷϥΠϑαΠΫϧ onPause onPause onStop Activity Fragment onStop onDestroy onDestroyView

    onDestroy onDetach ࣌ؒ ※super.onHogeͷޙͷλΠϛϯάͰ֬ೝ
  30. ֤ίʔϧόοΫͷυΩϡϝϯτΛ֬ೝ 20

  31. • Activity͕։࢝͢Δͱ͖ʹݺ͹ΕΔϝιουͰ͢ɻ
 ͜͜͸΄ͱΜͲͷॳظԽॲཧΛߦ͏৔ॴͰ͢ɻ • setContentViewΛݺΜͰActivityͷUIΛΠϯϑϨʔτ ͨ͠ΓɺfindViewByIdΛ࢖֤ͬͯViewͷηοτΞοϓ ͨ͠Γɺදࣔ͢ΔͨΊͷσʔλΛऔಘͨ͠Γ͠·͢ɻ • onCreateͰfinishΛݺͿ͜ͱ΋Ͱ͖·͢ɻ
 ͦͷ৔߹ɺonCreateޙ͙͢ʹonDestroy͕ݺ͹Εɺ

    onStart, onResume, onPause, onStop͸ݺ͹Ε·ͤ Μɻ onCreate 21
  32. 22 onCreateͰfinishΛݺΜͩ৔߹ Activity Fragment ࣌ؒ

  33. 22 onCreateͰfinishΛݺΜͩ৔߹ onCreate Activity Fragment ࣌ؒ ͜͜Ͱfinish()Λίʔϧ

  34. 22 onCreateͰfinishΛݺΜͩ৔߹ onAttach onCreate onCreate Activity Fragment onDestroy onDestroy onDetach

    ࣌ؒ ͜͜Ͱfinish()Λίʔϧ
  35. • ϑϥάϝϯτ͕ͦͷίϯςΩετʹ࠷ॳʹΞλον͞ ΕΔͱ͖ʹݺͼग़͞Ε·͢ɻ
 ͜ͷޙɺonCreate͕ݺͼग़͞Ε·͢ɻ onCreate onAttach 23

  36. • Fragmentͷ࡞੒࣌ʹݺ͹Ε·͢ɻ
 onAttachͷޙͰonCreateViewͷલʹݺ͹Ε·͢ɻ • Fragment͕ଐ͍ͯ͠Δactivity͕࡞੒தʹݺͼग़͞Ε ΔͷͰɺactivityͷViewΛࢀরͰ͖·ͤΜɻ • ActivityͷViewΛࢀর͢Δͷ͸ɺonActivityCreatedͰ ߦ͍ͬͯͩ͘͞ɻ onCreate

    onCreate 24
  37. • ϑϥάϝϯτʹϢʔβʔΠϯλʔϑΣΠεϏϡʔΛΠϯελϯε Խͤ͞ΔͨΊʹݺͼग़͞Ε·͢ɻ ͜Ε͸ΦϓγϣϯͰ͋Γɺඇά ϥϑΟΧϧϑϥάϝϯτ͸nullΛฦ͢Մೳੑ͕͋Γ·͢ɻ ͜Ε ͸ɺonCreateͱonActivityCreatedͷؒͰݺͼग़͞Ε·͢ɻ • ίϯετϥΫλFragment(int)Λݺͼग़͢ͱɺσϑΥϧτϏϡʔ ͕ฦ͞Ε·͢ɻ

    ͦΕҎ֎ͷ৔߹ɺ͜ͷϝιου͸nullΛฦ͠· ͢ɻ • ͜ͷϝιουͰͷΈϨΠΞ΢τΛల։͠ɺฦ͞ΕͨϏϡʔͰಈ࡞ ͢ΔϩδοΫΛonViewCreatedʹҠಈ͢Δ͜ͱΛ͓קΊ͠·͢ɻ • ͔͜͜ΒϏϡʔΛฦ͢৔߹ɺޙͰϏϡʔ͕ղ์͞ΕΔͱ͖ʹ onDestroyViewͰݺͼग़͞Ε·͢ɻ onCreate onCreateView 25
  38. 26 ίϯετϥΫλFragment(int) • Fragmentʹlayout idΛ౉ͤΔίϯετϥΫλ • class MyFragment: Fragment(R.layout.fragment_my) {}

    
 ͱॻ͚·͢ • onCreateViewΛΦʔόʔϥΠυͯ͠ɺinflateͨ͠ViewΛ ฦ͞ͳ͍͍ͯ͘(ϑϨʔϜϫʔΫଆͰ΍ͬͯ͘ΕΔ)
  39. 27 ίϯετϥΫλFragment(int) • JetpackͷfragmentϥΠϒϥϦͷมߋ఺ΛݟΔͱ

  40. 28 ίϯετϥΫλFragment(int) • 2019೥9݄5೔όʔδϣϯ1.1.0Ͱ௥Ճ͞Εͨ΋ͷͷΑ͏Ͱ ͢ɻ • ͨͩɺ͍·Ͱ͸DatabindingΛ࢖͏͜ͱ͕ଟ͍͔΋͠Ε· ͤΜͷͰɺͦͷ৔߹͸͍··Ͱ௨ΓonCreateViewͰ ViewΛฦ͢͜ͱʹͳΔ͔ͱࢥ͍·͢ɻ

  41. • FragmentͷActivity͕࡞੒׬ྃ͠ɺFragmentͷView֊ ૚͕ΠϯελϯεԽ͞Εͨͱ͖ʹݺ͹Ε·͢ɻϏϡʔ ͷऔಘ΍ঢ়ଶͷ෮ݩͳͲɺ͜ΕΒͷཁૉ͕഑ஔ͞Εͨ ޙɺ࠷ऴతͳॳظԽΛߦ͏ͨΊʹ࢖༻Ͱ͖·͢ɻ • onCreateViewͷޙʹݺ͹Ε·͢ɻ onViewStateRestoredͷલʹݺ͹Ε·͢ɻ onCreate onActivityCreated

    29
  42. • อଘ͞Εͨ͢΂ͯͷঢ়ଶ͕ϑϥάϝϯτͷϏϡʔ֊૚ ʹ෮ݩ͞Εͨͱ͖ʹݺͼग़͞Ε·͢ɻ • ͜Ε͸ɺνΣοΫϘοΫε΢ΟδΣοτ͕ݱࡏνΣο Ϋ͞Ε͍ͯΔ͔Ͳ͏͔ͳͲɺอଘঢ়ଶʹج͍ͮͯॳظ ԽΛߦ͏ͨΊʹ࢖༻Ͱ͖·͢ɻ • ͜Ε͸ɺonActivityCreatedͷޙɺonStartͷલʹݺͼ ग़͞Ε·͢ɻ

    onCreate onViewStateRestored 30
  43. • ϑϥάϝϯτ͕Ϣʔβʔʹදࣔ͞ΕΔͱ͖ʹݺͼग़͞ Ε·͢ɻ • ͜Ε͸௨ৗɺؚ·ΕΔΞΫςΟϏςΟͷϥΠϑαΠΫ ϧͷActivityͷonStartʹؔ࿈෇͚ΒΕ͍ͯ·͢ɻ onCreate onStart 31

  44. • onCreateͷޙ͔ɺActivity͕ετοϓͨ͠ͱ͖͸onRestartͷ ޙʹݺ͹Ε·͢ɻͦΕ͔ΒonResumeʹଓ͖·͢ɻ • ϏδϡΞϧཁૉΛඳը࢝͠ΊͨΓɺΞχϝʔγϣϯͷ։࢝࢝͠ ΊΔͷʹྑ͍৔ॴͰ͢ɻ • ͜ͷؔ਺಺͔Βfinish()Λݺͼग़͢͜ͱ͕Ͱ͖·͢ɻ͜ͷ৔߹ɺ onStartͷ௚ޙʹϥΠϑαΠΫϧભҠʢonResumeɺonPause ͳͲʣΛ࣮ߦͤͣʹonStop͕͙͢ʹݺͼग़͞Ε·͢ɻ

    • ೿ੜΫϥε͸ɺ͜ͷϝιουͷεʔύʔΫϥεͷ࣮૷Λݺͼग़ ͢ඞཁ͕͋Γ·͢ɻ ͦ͏Ͱͳ͍৔߹ɺྫ֎ (SuperNotCalledException)͕εϩʔ͞Ε·͢ɻ onStart 32
  45. 33 onStartͰfinishΛݺΜͩ৔߹ Activity Fragment ࣌ؒ

  46. 33 onStartͰfinishΛݺΜͩ৔߹ onStart Activity Fragment ࣌ؒ ͜͜Ͱfinish()Λίʔϧ

  47. 33 onStartͰfinishΛݺΜͩ৔߹ onStop onStart Activity Fragment onDestroy onDestroy onDetach ࣌ؒ

    ͜͜Ͱfinish()Λίʔϧ onStop onDestroyView
  48. • ϑϥάϝϯτ͕Ϣʔβʔʹදࣔ͞ΕɺΞΫςΟϒʹ࣮ ߦ͞Ε͍ͯΔͱ͖ʹݺͼग़͞Ε·͢ɻ • ͜Ε͸௨ৗɺؚ·Ε͍ͯΔΞΫςΟϏςΟͷϥΠϑα ΠΫϧͷActivityͷonResumeʹؔ࿈෇͚ΒΕ͍ͯ· ͢ɻ onCreate onResume 34

  49. • ΞΫςΟϏςΟ͕Ϣʔβʔͱͷର࿩Λ։࢝͢ΔͨΊʹɺ onRestoreInstanceStateɺonRestartɺ·ͨ͸onPauseͷޙʹݺͼग़͞Ε ·͢ɻ • ͜Ε͸ɺΞΫςΟϏςΟ͕ΞΫςΟϒʹͳΓɺೖྗΛड͚औΔ४උ͕Ͱ͖ͨ ͜ͱΛࣔ͢ΠϯδέʔλͰ͢ɻ ΞΫςΟϏςΟελοΫͷ࠷্෦ʹ͋Γɺ Ϣʔβʔʹදࣔ͞Ε·͢ɻ •

    Build.VERSION_CODES.QΑΓલͷϓϥοτϑΥʔϜόʔδϣϯͰ͸ɺഉଞ తΞΫηεσόΠεΛ։͍ͨΓɺγϯάϧτϯϦιʔεʹΞΫηεͨ͠Γ͢ Δͷʹ΋ద͍ͯ͠·͢ɻ Build.VERSION_CODES.QҎ߱ɺγεςϜʹ͸ෳ਺ ͷ࠶։͞ΕͨΞΫςΟϏςΟ͕ಉ࣌ʹଘࡏ͢ΔՄೳੑ͕͋ΔͨΊɺ୅ΘΓʹ onTopResumedActivityChangedΛ࢖༻͢Δඞཁ͕͋Γ·͢ɻ • ೿ੜΫϥε͸ɺ͜ͷϝιουͷεʔύʔΫϥεͷ࣮૷Λݺͼग़͢ඞཁ͕͋Γ ·͢ɻ ͦ͏Ͱͳ͍৔߹ɺྫ֎(SuperNotCalledException)͕εϩʔ͞Ε·͢ɻ onResume 35
  50. • ΞΫςΟϏςΟ͕γεςϜ಺ͷ࠶։͞Εͨ࠷্ҐͷҐஔΛऔಘ ·ͨ͸ࣦ͏ͱ͖ʹݺͼग़͞Ε·͢ɻ • Build.VERSION_CODES.Q͔ΒɺϚϧν΢Οϯυ΢ϞʔυͱϚ ϧνσΟεϓϨΠϞʔυͰෳ਺ͷΞΫςΟϏςΟΛಉ࣌ʹ࠶։ Ͱ͖·͢ɻ ͜ͷίʔϧόοΫ͸ɺΞΫςΟϏςΟ͕ΧϝϥͳͲ ͷഉଞΞΫηεσόΠεΛ։͜͏ͱ͢ΔՄೳੑ͕͋Δ͜ͱΛࣔ ͢΋ͷͱͯ͠ɺonResumeͷ୅ΘΓʹ࢖༻͢Δඞཁ͕͋Γ·

    ͢ɻ • ΞΫςΟϏςΟ͕࠶։͞ΕͨޙɺҰ࣌ఀࢭ͞ΕΔલʹৗʹ഑৴ ͞Ε·͢ɻ ৔߹ʹΑͬͯ͸εΩοϓ͞ΕΔՄೳੑ͕͋ΓɺΞΫ ςΟϏςΟ͸onResume͔ΒonPauseʹ௚઀ҠߦͰ͖·͕͢ɺ ࠷ॳͷ࠶։ঢ়ଶΛड͚औΔ͜ͱ͸Ͱ͖·ͤΜɻ onTopResumedActivityChanged 36
  51. • Ϛϧν΢Οϯυ΢ରԠ΍ંΓͨͨΈࣜσόΠεΛରԠ ͢Δͱ͖ʹ͸ඞͣߟྀ͕ඞཁʹͳΓͦ͏Ͱ͢ɻ • ৄ͘͠͸ͪ͜Β
 ʮંΓͨͨΈࣜσόΠεʹରԠͨ͠ΞϓϦͷ࡞੒ʯ
 https://developer.android.com/preview/features/ foldables onTopResumedActivityChanged 37

  52. ͜͜·ͰͰΞϓϦىಈ·Ͱͷ ίʔϧόοΫΛ֬ೝ͠·ͨ͠ɻ 38

  53. ͜Μͳײ͡ͰΞϓϦऴྃ࣌ͷίʔϧόοΫ΋ ֬ೝ͍͖ͯ͠·͕͢ΑΖ͍͠Ͱ͔͢ʁ 39

  54. 40 ΞϓϦऴྃ࣌ͷϥΠϑαΠΫϧ

  55. 40 ΞϓϦऴྃ࣌ͷϥΠϑαΠΫϧ

  56. 41 ΞϓϦऴྃ࣌ͷϥΠϑαΠΫϧ onPause onPause onStop Activity Fragment onStop onDestroy onDestroyView

    onDestroy onDetach ࣌ؒ ※super.onHogeͷޙͷλΠϛϯάͰ֬ೝ ࠶ܝ
  57. • ϑϥάϝϯτ͕࠶։͞Εͳ͘ͳͬͨͱ͖ʹݺͼग़͞Ε ·͢ɻ • ͜Ε͸௨ৗɺΞΫςΟϏςΟͷϥΠϑαΠΫϧͷ ActivityͷonPauseʹؔ࿈෇͚ΒΕ͍ͯ·͢ɻ onCreate onPause 42

  58. • Ϣʔβʔ͕ΞΫςΟϏςΟΛ৮Βͳ͘ͳͬͨͱ͖(ϗʔ ϜϘλϯΛԡ͢ͳͲ)ʹɺΞΫςΟϏςΟϥΠϑαΠΫ ϧͷҰ෦ͱͯ͠ݺͼग़͞Ε·͕͢ɺ͜ͷ࣌఺Ͱ͸ը໘ ʹ͸දࣔ͞Εͨ··Ͱ͢ɻ onResumeͱରԠ͍ͯ͠ ·͢ɻ • ΞΫςΟϏςΟAͷલͰΞΫςΟϏςΟB͕ىಈ͞ΕΔ ͱɺ͜ͷίʔϧόοΫ͸AͰݺͼग़͞Ε·͢ɻB͸ɺA

    ͷonPauseϝιου͕ฦͬͯ͘Δ·Ͱ࡞੒͞Ε·ͤ Μɻ͕ͨͬͯ͠ɺ͜͜Ͱ௕͍࣌ؒ͸ߦΘͳ͍Ͱͩ͘͞ ͍ɻ onPause (1/3) 43
  59. • ͜ͷίʔϧόοΫ͸ɺΞΫςΟϏςΟͷฤूதͷӬଓతͳঢ়ଶΛอ ଘ͢ΔͨΊʹओʹ࢖༻͞Εɺ৽͍͠ΞΫςΟϏςΟΛ։࢝͢Δͷʹ े෼ͳϦιʔε͕ͳ͍৔߹ɺ͜ͷΞΫςΟϏςΟΛڧ੍ऴྃͤͣɺԿ ΋ࣦΘΕͳ͍Α͏ʹ͢ΔͨΊʹ࢖༻͠·͢ɻ • ͜Ε͸·ͨɺ࣍ͷΞΫςΟϏςΟ΁ͷ੾Γସ͑ΛՄೳͳݶΓ଎͘͢ ΔͨΊʹɺCPUΛஶ͘͠ফඅ͢Δ΋ͷΛఀࢭ͢Δͷʹదͨ͠৔ॴͰ ͢ɻ •

    Build.VERSION_CODES.QΑΓલͷϓϥοτϑΥʔϜόʔδϣϯͰ ͸ɺഉଞతΞΫηεσόΠεΛดͨ͡ΓɺγϯάϧτϯϦιʔε΁ͷ ΞΫηεΛղ์ͨ͠Γ͢Δͷʹ΋ద͍ͯ͠·͢ɻ Build.VERSION_CODES.QҎ߱ɺγεςϜʹ͸ෳ਺ͷ࠶։͞ΕͨΞΫ ςΟϏςΟ͕ಉ࣌ʹଘࡏ͢ΔՄೳੑ͕͋ΔͨΊɺ୅ΘΓʹ onTopResumedActivityChangedΛ࢖༻͢Δඞཁ͕͋Γ·͢ɻ onPause (2/3) 44
  60. • ΞΫςΟϏςΟ͕Ұ൪্Ͱىಈ͞Εͨ৔߹ɺ͜ͷݺͼग़ ͠͞Εͨޙɺ௨ৗ͸࣍ͷonStopΛݺͼग़͠·͢ʢ࣍ͷ ΞΫςΟϏςΟ͕࠶։͞Ε্ͯʹදࣔ͞Εͨޙʣɻͨͩ ͠ɺ৔߹ʹΑͬͯ͸ɺonStop͕ݺ͹Εͣʢఀࢭঢ়ଶΛ ܦ༝ͤͣʣʹonResumeʹ௚઀ίʔϧόοΫ͞ΕΔ͜ ͱ͕͋Γ·͢ɻΞΫςΟϏςΟ͸ɺϚϧν΢Οϯυ΢ Ϟʔυͷ৔߹ɺϢʔβʔʹදࣔ͞Εͨ··ͷ৔߹ʹɺ Ұ࣌ఀࢭঢ়ଶ(onPause)Ͱఀࢭ͢Δ͜ͱ΋͋Γ·͢ɻ •

    ೿ੜΫϥε͸ɺ͜ͷϝιουͷεʔύʔΫϥεͷ࣮૷Λ ݺͼग़͢ඞཁ͕͋Γ·͢ɻͦ͏Ͱͳ͍৔߹ɺྫ֎͕ε ϩʔ͞Ε·͢ɻ onPause (3/3) 45
  61. 46 onPause͔ΒonResumeʹͳΔλΠϛϯά • ෼ׂը໘λοϓͰonPause • ผͷΞϓϦΛબΜͩΒɺonStop ͸ݺ͹ΕͣonResume͕ݺ͹Ε Δ

  62. 46 onPause͔ΒonResumeʹͳΔλΠϛϯά • ෼ׂը໘λοϓͰonPause • ผͷΞϓϦΛબΜͩΒɺonStop ͸ݺ͹ΕͣonResume͕ݺ͹Ε Δ

  63. • ϑϥάϝϯτ͕΋͏࢝·Βͳ͍࣌ʹݺͼग़͞Ε·͢ɻ • ͜Ε͸௨ৗɺؚ·ΕΔΞΫςΟϏςΟͷϥΠϑαΠΫ ϧͷActivity.onStopʹؔ࿈෇͚ΒΕ͍ͯ·͢ɻ onCreate onStop 47

  64. • Ϣʔβʔ͔Βݟ͑ͳ͘ͳͬͨͱ͖ʹݺͼग़͞Ε· ͢ɻ ࣍ͷϢʔβʔߦಈʹԠͯ͡ɺonRestart͔ onDestroy͕ݺ͹ΕΔ͔ɺԿ΋ίʔϧ͞Ε·ͤΜɻ • ͜Ε͸ɺUIͷߋ৽ɺΞχϝʔγϣϯ΍ͦͷଞͷࢹ֮త ͳ΋ͷͷ࣮ߦΛఀࢭ͢Δͷʹదͨ͠৔ॴͰ͢ɻ • ೿ੜΫϥε͸ɺ͜ͷϝιουͷεʔύʔΫϥεͷ࣮૷

    Λݺͼग़͢ඞཁ͕͋Γ·͢ɻ ͦ͏Ͱͳ͍৔߹ɺྫ֎ ͕εϩʔ͞Ε·͢ɻ onStop 48
  65. 49 onStopͷ͋ͱԿ΋͠ͳ͍λΠϛϯά • λεΫҰཡͷͱ͖

  66. 49 onStopͷ͋ͱԿ΋͠ͳ͍λΠϛϯά • λεΫҰཡͷͱ͖

  67. 50 onStopͷ͋ͱԿ΋͠ͳ͍λΠϛϯά • ϗʔϜʹ໭ͬͨͱ͖

  68. 50 onStopͷ͋ͱԿ΋͠ͳ͍λΠϛϯά • ϗʔϜʹ໭ͬͨͱ͖

  69. 51 onStopͷ͋ͱԿ΋͠ͳ͍λΠϛϯά • ઃఆ͔Βڧ੍ఀࢭͨ͠৔߹ • onDestory͸ݺ͹Ε·ͤΜɻ

  70. 51 onStopͷ͋ͱԿ΋͠ͳ͍λΠϛϯά • ઃఆ͔Βڧ੍ఀࢭͨ͠৔߹ • onDestory͸ݺ͹Ε·ͤΜɻ

  71. 52 onStopͷ͋ͱonRestartʹͳΔλΠϛϯά • όοΫάϥ΢ϯυ͔Β
 ໭͖ͬͯͨ࣌

  72. 52 onStopͷ͋ͱonRestartʹͳΔλΠϛϯά • όοΫάϥ΢ϯυ͔Β
 ໭͖ͬͯͨ࣌

  73. • ݱࡏͷΞΫςΟϏςΟ͕Ϣʔβʔʹ࠶දࣔ͞Ε͍ͯΔ ʢϢʔβʔ͕࠶ͼ໭ͬͨʣͱ͖ʹɺonStopʢʣͷޙʹ ݺͼग़͞Ε·͢ɻ ͦͷޙʹonStart͕ଓ͖ɺonResume ͕ଓ͖·͢ɻ • ੜͷCursorΦϒδΣΫτΛ࢖༻͍ͯ͠ΔΞΫςΟϏςΟ ͷ৔߹ɺ͜Ε͸௨ৗɺΧʔιϧΛ࠶ΫΤϦ͢Δ৔ॴͰ ͢ʢonStopͰΧʔιϧΛඇΞΫςΟϒʹͨͨ͠Ίʣɻ

    • ೿ੜΫϥε͸ɺ͜ͷϝιουͷεʔύʔΫϥεͷ࣮૷Λ ݺͼग़͢ඞཁ͕͋Γ·͢ɻ ͦ͏Ͱͳ͍৔߹ɺྫ֎͕ε ϩʔ͞Ε·͢ɻ onRestart 53
  74. 54 onStopͷ͋ͱonDestroyʹͳΔλΠϛϯά • ΞϓϦऴྃ࣌ • ը໘ճస࣌

  75. 54 onStopͷ͋ͱonDestroyʹͳΔλΠϛϯά • ΞϓϦऴྃ࣌ • ը໘ճస࣌

  76. 55 onStopͷ͋ͱonDestroyʹͳΔλΠϛϯά • ը໘෼ׂޙͷ΢Οϯυ΢αΠζ มߋ࣌

  77. 55 onStopͷ͋ͱonDestroyʹͳΔλΠϛϯά • ը໘෼ׂޙͷ΢Οϯυ΢αΠζ มߋ࣌

  78. 56 onStopͷ͋ͱonDestroyʹͳΔλΠϛϯά • λεΫҰཡ͔Βڧ੍ऴྃ࣌ • ͪͳΈʹɺFragmentͷ onDestory͸ݺ͹Ε·ͤΜɻ

  79. 56 onStopͷ͋ͱonDestroyʹͳΔλΠϛϯά • λεΫҰཡ͔Βڧ੍ऴྃ࣌ • ͪͳΈʹɺFragmentͷ onDestory͸ݺ͹Ε·ͤΜɻ

  80. • onCreateViewʹΑͬͯ࡞੒͞ΕͨϏϡʔ͕ϑϥάϝ ϯτ͔Β੾Γ཭͞Εͨͱ͖ʹݺͼग़͞Ε·͢ɻ ࣍ʹ ϑϥάϝϯτΛදࣔ͢Δඞཁ͕͋Δͱ͖ʹ͸ɺ৽͍͠ Ϗϡʔ͕࡞੒͞Ε·͢ɻ • ͜Ε͸ɺonStopͷޙɺonDestroyͷલʹݺͼग़͞Ε ·͢ɻ onCreateView͕non-nullͷϏϡʔΛฦ͔ͨ͠

    Ͳ͏͔ʹؔ܎ͳ͘ݺͼग़͞Ε·͢ɻ • ಺෦తʹ͸ɺϏϡʔͷঢ়ଶ͕อଘ͞Εͨޙɺ਌͔Β࡟ আ͞ΕΔલʹݺͼग़͞Ε·͢ɻ onCreate onDestroyView 57
  81. 58 onDestroyView͕ݺ͹ΕΔλΠϛϯά • ΞϓϦऴྃ࣌ • ը໘ճస࣌ • ෼ׂը໘λοϓ࣌ • ը໘෼ׂޙɺ΢Οϯυ΢αΠζมߋ࣌

    • ผͷϑϥάϝϯτʹભҠ࣌
  82. • ϑϥάϝϯτ͕࢖༻͞Εͳ͘ͳͬͨͱ͖ʹݺͼग़͞Ε ·͢ɻ ͜Ε͸ɺonStopͷޙɺonDetachͷલʹݺͼ ग़͞Ε·͢ɻ onCreate onDestroy 59

  83. 60 onDestroy͕ݺ͹ΕΔλΠϛϯά • ΞϓϦऴྃ࣌ • ը໘ճస࣌ • ෼ׂը໘λοϓ࣌ • ը໘෼ׂޙɺ΢Οϯυ΢αΠζมߋ࣌

    • ↑onDestoryView͕ݺ͹ΕΔλΠϛϯάͱ΄΅ಉ͕ͩ͡ɺ ผͷϑϥάϝϯτʹભҠ࣌ʹ͸ݺ͹Ε·ͤΜ
  84. • ϑϥάϝϯτ͕ͦͷΞΫςΟϏςΟʹΞλον͞Εͳ ͘ͳͬͨͱ͖ʹݺͼग़͞Ε·͢ɻ ͜Ε͸ɺonDestroy ͷޙʹݺͼग़͞Ε·͢ɻ onCreate onDetach 61

  85. • ΞΫςΟϏςΟ͕ഁغ͞ΕΔલʹɺ࠷ऴతͳΫϦʔϯΞοϓΛ࣮ߦ͠·͢ɻ͜Ε͸ɺ ΞΫςΟϏςΟ͕ऴ͍ྃͯ͠Δʢfinish()͕ݺͼग़͞Ε͍ͯΔʣ͔ɺγεςϜ͕ΞΫ ςΟϏςΟͷ͜ͷΠϯελϯεΛҰ࣌తʹഁغͯ͠εϖʔεΛઅ໿͍ͯ͠ΔͨΊʹൃ ੜ͠·͢ɻ isFinishing()ϝιουΛ࢖༻͢Δͱɺ͜ΕΒ2ͭͷγφϦΦΛ۠ผͰ͖· ͢ɻ • ஫ɿ͜ͷϝιου͕σʔλΛอଘ͢Δ৔ॴͱͯ͠ݺͼग़͞ΕΔ͜ͱΛظ଴͠ͳ͍Ͱ͘ ͍ͩ͞ʂͨͱ͑͹ɺΞΫςΟϏςΟ͕ίϯςϯπϓϩόΠμʔͰσʔλΛฤू͍ͯ͠

    Δ৔߹ɺͦΕΒͷฤू͸͜͜Ͱ͸ͳ͘onPause·ͨ͸onSaveInstanceStateͰί ϛοτ͢Δඞཁ͕͋Γ·͢ɻ͜ͷϝιου͸௨ৗɺΞΫςΟϏςΟʹؔ࿈෇͚ΒΕͨ εϨουͳͲͷϦιʔεΛղ์͢ΔͨΊʹ࣮૷͞Ε·͢ɻͦͷͨΊɺΞϓϦέʔγϣ ϯͷ࢒Γͷ࣮ߦதʹഁյ͞ΕͨΞΫςΟϏςΟ͕ͦͷΑ͏ͳ΋ͷΛ࢒͞ͳ͍Α͏ʹ͠ ·͢ɻγεςϜ͕͜ͷϝιουʢ·ͨ͸ଞͷϝιουʣΛݺͼग़ͣ͞ʹɺΞΫςΟϏ ςΟͷϗεςΟϯάϓϩηεΛڧ੍ऴྃ͢Δ৔߹͕͋Γ·͢ɻͦͷͨΊɺϓϩηε͕ ऴྃͨ͠ޙ΋ͦͷ··ʹ͓ͯ͘͜͠ͱΛ໨తͱͯ͠࢖༻͠ͳ͍Ͱ͍ͩ͘͞ɻ • ೿ੜΫϥε͸ɺ͜ͷϝιουͷεʔύʔΫϥεͷ࣮૷Λݺͼग़͢ඞཁ͕͋Γ·͢ɻͦ ͏Ͱͳ͍৔߹ɺྫ֎͕εϩʔ͞Ε·͢ɻ onDestroy 62
  86. ײ૝ 63

  87. 64 ײ૝ • Android 10Ͱ͸ંΓͨͨΈࣜσόΠεʹؔ࿈ͨ͠ίʔϧ όοΫonTopResumedActivityChanged͕૿͑ͯͨΓ͠· ͨ͠ͷͰɺࠓޙ͜ͷΑ͏ͳσόΠεΛରԠ͢Δ৔߹͸ཁ νΣοΫͰ͢ɻ • Fragmentͷ৽͍͠ίϯετϥΫλ͕૿͑ͯͨΓ΋ͯ͠ɺ

    ৽͍͠ൃݟ΋͋Γ·ͨ͠ɻ
  88. ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ 65