Monday 4 June 2012

Speed Up Screen Rotation Transition

Category: Android Development


เมื่อ User ทำการ Rotate Device สิ่งที่เกิดขึ้นตามมาก็คือ Activity จะถูก Destroyed และ Instance ใหม่ของ Activity นั้นจะถูก Created ขึ้นมาแทน

เมื่อ Activity ถูก Destroyed และ Created ขึ้นมาใหม่ อันเป็นผลเนื่องมาจากการเปลี่ยน Configuration (อย่างเช่นในกรณีของการ Rotate Device) การ implement onRetainNonConfigurationInstance() จะช่วยให้เราสามารถคืนกลับ Object อะไรก็ตาม ที่เราจะสามารถเรียกใช้งานจาก Instance ใหม่ของ Activity ที่ถูก Created ขึ้นได้ในภายหลัง โดยการเรียก getLastNonConfigurationInstance

ซึ่งวิธีการนี้จะช่วยให้ การ Transition ในช่วงของ Screen Rotation ทำได้รวดเร็วขึ้น เพราะปกติการดึงข้อมูลเพื่อนำมาแสดงผลบน Screen เป็น process ที่ค่อนข้างใช้เวลา แต่ถ้าเรามีการบันทึกเก็บไว้ก่อน หรือที่เราเรียกว่าการทำ Caching ก็เพียงแค่ดึงข้อมูลออกมาจาก Object ที่เราได้บันทึกข้อมูลเก็บไว้ผ่าน getLastNonConfigurationInstance แทนที่จะต้องไปดึงข้อมูลใหม่ทั้งหมด ก็จะสามารถทำให้ลดเวลาในการประมวลผลได้อย่างมาก

แหล่งที่มา: หนังสือ Creating Android Applications ของ Chris Haseman

No comments:

Post a Comment