Android Architecture Components EP 2: Live Data

Live Data เป็นอีกสิ่งที่ช่วยให้นักพัฒนาไม่ต้องวุ่นวายไปกับการจัดการ Lifecycle เอง ซึ่งจะมีลักษณะเป็น Observable ซึ่งจะต่อยอดมาจาก Lifecycle อีกทีหนึ่ง ซึ่งถ้าใครยังไม่ได้อ่านแนะนำให้ไปอ่านก่อน ที่ Handling Lifecycles

LifeData สามารถทำงานร่วมกับ Lifecycle เป็นอย่างดี อีกทั้งยังสามารถแก้ปัญหาลำดับการทำงานของ Lifecycle ให้ถูกต้อง ทำให้ผู้พัฒนาไม่ต้องจัดการ Lifecycle ด้วยตัวเอง


เจ้าของบล็อคขออนุญาติใช้ตัวอย่างเดิม เพื่อที่จะได้อ่านง่ายๆ เริ่มแรกให้ทำการ extends LiveData<T> โดยระบุ Generic Type ของ Object ที่เราต้องการ Observer เป็นอะไร ลงใน class และทำการ Override คำสั่ง onActive(), onInactive() ซึ่งสองคำสั่งนี้จะไว้กำหนดว่าจะให้อะไรเริ่ม อะไรหยุด

โดย
onActive() จะถูกเรียกใช้งานตอนสั่ง observe() ในคลาสที่เรียกและ
onInactive() จะถูกเรียกใช้ตอนตรงข้ามกับ onActive()

  • เมื่อ onActive() ทำงานตอน onCreate() ทำให้ onInactive() ทำก่อน onDestroy()
  • เมื่อ onActive() ทำงานตอน onStart() ทำให้ onInactive() ทำก่อน onStop()
  • เมื่อ onActive() ทำงานตอน onResume() ทำให้ onInactive ทำก่อน onPause

เมื่อต้องการจะโยนค่าอะไรกลับมาก็ให้สั่ง setValue();

ตอนเรียกใช้ก็เหมือน EP ก่อน แล้วเพิ่มคำสั่ง observe();
แล้ว Overrid onChanged -> ค่าที่เปลี่ยนจะเรียกมาที่อันนี้

ระวังนิดนึง บางทีเราสั่ง observe() ตอน onCreate แต่ถ้าเรียกใน Runtime Permission ทำให้ onActive() ถือว่าถูกเรียกใน onResume() ต้องเช็คดีๆ

เวลาใช้งานจริงก็จะเป็นตามนี้

ขอขอบคุณข้อมูลดีๆจาก 
http://www.akexorcist.com
https://medium.com/@pondthaitay
https://developer.android.com

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.