ฉันสังเกตว่าเมื่อฉันเปิดแอพจาก App Switcher มันแสดงให้ฉันเห็นภาพหน้าจอของสถานะล่าสุดของแอพแทนการแสดงให้ฉันเห็น จริง แอป
ใครสามารถชี้แจงกระบวนการเปิดแอพจากพื้นหลังได้บ้าง
ฉันสังเกตว่าเมื่อฉันเปิดแอพจาก App Switcher มันแสดงให้ฉันเห็นภาพหน้าจอของสถานะล่าสุดของแอพแทนการแสดงให้ฉันเห็น จริง แอป
ใครสามารถชี้แจงกระบวนการเปิดแอพจากพื้นหลังได้บ้าง
คำตอบ:
เนื่องจากการออกจากแอปจริง ๆ แล้วใช้พลังงานแบตเตอรี่บางส่วนในกระบวนการดำเนินการ (เช่นการล้างออกจาก RAM ฯลฯ ) จากนั้นอีกครั้งในภายหลังเมื่อเปิดตัวแอปอีกครั้ง iOS ได้รับการออกแบบมาเพื่อให้เปิดแอปได้โดยปกติ .
ตอนนี้แม้ว่าพวกเขาจะเปิดอยู่พวกเขาแค่นั่งอยู่ในโหมดระงับชั่วคราวที่ไม่ได้ใช้พลังงานแบตเตอรี่ แต่อย่างใด ดังนั้นในขณะที่แอพยังโหลดในแรมและถ่าย ช่องว่าง มันไม่ได้ทำอะไรเลย - แค่นอนเฉยๆ
ด้วยเหตุนี้คุณต้องออกจากแอปหากทำงานไม่ถูกต้อง (เช่นแอปหยุดทำงานแสดงว่าแอปไม่ทำงานอย่างถูกต้อง ฯลฯ )
ดังนั้นโดยปกติแล้วแอพที่มีรายชื่ออยู่ใน App Switcher นั้นไม่จำเป็น วิ่ง - ในความเป็นจริงพวกเขาส่วนใหญ่เป็น ไม่ได้ทำงาน เลย แอพส่วนใหญ่ใน App Switcher อยู่ใน รัฐที่ถูกระงับ - ซึ่งหมายความว่าพวกเขาไม่ได้: ปรากฏบนหน้าจอรันโค้ดใช้ CPU หรือ GPU หรือใช้แบตเตอรี่ อย่างไรก็ตามพวกเขา เป็น ยังคงอาศัยอยู่ในหน่วยความจำ จนกระทั่ง พวกเขาจะถูกลบออก (ถ้าจำเป็น) โดยระบบเพื่อเพิ่มหน่วยความจำ
ตอนนี้สิ่งที่เกิดขึ้นที่นี่คือหน้าจอสุดท้ายที่แสดงโดยแอพส่วนใหญ่คือสิ่งที่เก็บไว้ในสถานะระงับนี้ ดังนั้น ภาพหน้าจอ คุณเห็นไม่ได้เป็นภาพหน้าจอ แต่อย่างใด แต่เป็นรัฐที่รู้จักล่าสุดที่แสดงโดยแอพก่อนหน้านี้ ระงับ .
ดูการอ้างอิงด้านล่างสำหรับข้อมูลเพิ่มเติม:
ที่ถูกระงับ - แอพอยู่ในพื้นหลัง แต่ไม่ได้รันโค้ด ระบบจะย้ายแอปไปยังสถานะนี้โดยอัตโนมัติและจะไม่แจ้งให้ทราบก่อนที่จะทำเช่นนั้น ในขณะที่ถูกระงับแอปยังคงอยู่ในหน่วยความจำ แต่ไม่ได้รันรหัสใด ๆ เมื่อเงื่อนไขหน่วยความจำต่ำเกิดขึ้นระบบอาจล้างแอปที่ถูกระงับโดยไม่แจ้งให้ทราบล่วงหน้าเพื่อให้มีพื้นที่มากขึ้นสำหรับแอปเบื้องหน้า
แหล่ง : ดู ตารางที่ 2-3 ในแอปเปิ้ล คู่มือการเขียนโปรแกรมแอพสำหรับ iOS: Execution States สำหรับแอพ .