รูปต่อไปนี้ (จากเอกสารอย่างเป็นทางการ ) อธิบายวงจรชีวิตที่รู้จักกันดีของกิจกรรม Android:
ในทางกลับกันเมื่อกิจกรรมถูกทำลายโดยระบบ (เช่นเนื่องจากจำเป็นต้องเรียกคืนหน่วยความจำ) สถานะของกิจกรรมบางครั้งจะถูกบันทึกและเรียกคืนโดยอัตโนมัติโดยใช้วิธีการonSaveInstanceState()
และonRestoreInstanceState()
ดังที่แสดงในรูปต่อไปนี้ (เช่นกัน จากเอกสารอย่างเป็นทางการ ):
ฉันทราบดีว่าonSaveInstanceState()
จะไม่ถูกเรียกเสมอไปเมื่อกิจกรรมกำลังจะถูกทำลาย ตัวอย่างเช่นหากถูกทำลายเนื่องจากผู้ใช้กดปุ่ม "ย้อนกลับ" สถานะกิจกรรมจะไม่ถูกเก็บรักษาไว้ แต่ในกรณีที่สถานะถูกบันทึกและกู้คืนและonSaveInstanceState()
/ onRestoreInstanceState()
ได้รับการเรียกมันถูกเรียกเมื่อใด
ยกตัวอย่างเช่นตามตัวเลขดังกล่าวข้างต้นonRestoreInstanceState()
อาจจะเรียกว่าก่อนonStart()
หรือหลังonStart()
แต่ก่อนหรือหลังonResume()
ในทำนองเดียวกันเป็นไปได้หลายที่มีอยู่สำหรับonResume()
onSaveInstanceState()
พวกเขาเรียกว่าเมื่อไหร่กันแน่?
ตามหลักการแล้วสิ่งที่ฉันต้องการคือดูแผนภาพรวมที่แสดงสถานะวงจรชีวิตของกิจกรรมและวิธีการบันทึก / กู้คืนหากมีอยู่