โฮมเพจ » ทำอย่างไร » เกิดอะไรขึ้นเมื่อคุณปัดแอพ Android จากรายการแอพล่าสุด

    เกิดอะไรขึ้นเมื่อคุณปัดแอพ Android จากรายการแอพล่าสุด

    เมื่อคุณปัดแอปออกจากรายการแอปที่รันบน Android ในปัจจุบันจะเกิดอะไรขึ้นกับแอปพลิเคชันและข้อมูล อ่านต่อในขณะที่เราตรวจสอบ.

    เซสชั่นคำถามและคำตอบวันนี้มาถึงเราได้รับความอนุเคราะห์จาก Android ผู้ที่กระตือรือร้น - แผนกย่อยของ Exchange Exchange กลุ่มที่ขับเคลื่อนด้วยชุมชนของเว็บไซต์ถาม - ตอบ.

    คำถาม

    ผู้ที่ชื่นชอบ Android ผู้อ่าน Eldarerathis อยากรู้เกี่ยวกับฟังก์ชั่นแอพพลิเคชั่นที่ให้คุณดึงรายการแอพที่ใช้งานผ่านปุ่มหน้าหลักแล้วปัดไปทางขวาสันนิษฐานว่าปิด:

    รายการแอพล่าสุดใน Ice Cream Sandwich เพิ่มความสามารถในการปัดแอพออกจากรายการดังนั้นจึงยกเลิกแอพเหล่านี้อย่างถาวร (และเท่าที่ฉันรู้ว่านี่เป็นฟังก์ชั่นวานิลลาไม่ใช่ ROM / CM ที่กำหนดเอง) เอกสารสำคัญและแพลตฟอร์มไฮไลท์ไม่ปรากฏขึ้นเพื่อครอบคลุมการทำงานภายใต้ฮูดของฟังก์ชั่นนี้ แต่ฉันอยากรู้ว่าระบบกำลังทำอะไรอยู่.

    ต่อไปเพิ่มความอยากรู้ของฉันฉันตัดสินใจที่จะทำการทดสอบอย่างรวดเร็ว: ฉันเริ่มต้นเพลงในการติดตั้ง CM9 แล้วสำรองข้อมูลออกมา จากนั้นฉันจะตรวจสอบรายการแอพล่าสุดและเห็นว่ามันอยู่ที่นั่นจริง ๆ (และอยู่ในสถานะที่เหมาะสมตามภาพขนาดย่อ) จากนั้นฉันก็เข้าไป การตั้งค่า> การประยุกต์ใช้งาน และบังคับให้หยุดแอปเพลง แต่ก็ยังคงอยู่ในรายการล่าสุดทำให้ฉันเชื่อว่ามันไม่ได้เชื่อมต่อกับกระบวนการที่อยู่ในพื้นหลัง.

    ด้วยความตระหนักว่าดนตรีอาจเป็นตัวเลือกที่แย่ฉันจึงทดสอบกับแอพ USA Today สิ่งนี้แสดงให้เห็นถึงพฤติกรรมเดียวกันและดูเหมือนว่ามันถูกบังคับให้ "เปิดใหม่" หลังจากหยุดทำงาน (ซึ่งสมเหตุสมผล) แม้ว่ารูปขนาดย่อในรายการแอพล่าสุดไม่ได้สะท้อนสิ่งนี้ (แคชฉันเดาใช่มั้ย).

    ดังนั้นจะเกิดอะไรขึ้นในระดับระบบปฏิบัติการเมื่อคุณปัดแอพออกจากรายการล่าสุด? ไม่เพียงล้างข้อมูลของแอพออกจาก RAM และรวบรวมขยะทำลายสถานะที่บันทึกไว้?

    เกิดอะไรขึ้นเมื่อคุณปัดแอพออกจากรายการ?

    คำตอบ

    ผู้สนับสนุนคนที่กระตือรือร้นใน Android Austin Mills เสนอข้อมูลเชิงลึกบางอย่าง:

    การปัดแอปออกจากรายการแอพล่าสุดคือวานิลลาและใช่ไม่ใช่เอกสารที่ดี นี่เป็นหัวข้อของการอภิปรายที่เหมาะสมในฟอรัม Android ต่างๆ ... ฉันทามติดูเหมือนจะอธิบายได้ดีที่สุดในความคิดเห็นบางส่วน: พฤติกรรมนั้นคล้ายกับ แต่ไม่เหมือนกับการปิดแอปโดยทั่วไป (สำหรับแอปที่ ไม่ได้กำหนดการจัดการปุ่มย้อนกลับที่ชัดเจน) เป็นสิ่งเดียวกับการกดปุ่มย้อนเวลากลับไปจากภายในแอปพลิเคชันที่คุณออกจากระบบ.

    ลิงก์มีรายละเอียดเพิ่มเติมเกี่ยวกับข้อมูลเฉพาะบางอย่าง แต่โดยรวมแล้วคุณสามารถนึกได้ว่าเป็นการออกจากแอปพลิเคชัน.

    โดยเฉพาะแอพ Music ฉันเชื่อว่ามันเริ่มให้บริการดังนั้นในขณะที่งานของตัวเอง (Music app / UI) อาจถูกปิดบริการยังคงทำงานในพื้นหลังเพื่อให้เพลงของคุณไม่หยุดเพียงเพราะงาน ถูกล้างออกด้วยเหตุผลการจัดการหน่วยความจำ นั่นอาจส่งผลกระทบต่อสิ่งที่คุณเห็น.

    จากนั้นการมีส่วนร่วมในวงคำถามและคำตอบเอลดาร์ราธีทิสกลับมาพร้อมกับงานวิจัยของเขาเพื่อตอบคำถาม:

    ดูเหมือนว่าฉันจะพบคำค้นหาวิเศษที่นำไปสู่คำอธิบายบางอย่างจากพนักงานของ Google โดยเฉพาะฉันพบสถานที่สองแห่งที่ Dianne Hackborn อธิบายว่าเกิดอะไรขึ้นเมื่อคุณกวาดบางสิ่งออกจากรายการล่าสุด สิ่งแรกคือความคิดเห็นของหนึ่งในโพสต์ Google+ ของเธอ:

    [W] หมวกจะเกิดขึ้นเป็นพิเศษเมื่อคุณกวาดงานล่าสุดคือ: (1) ฆ่าพื้นหลังหรือกระบวนการที่ว่างเปล่าของแอปพลิเคชัน (ดูที่นี่สำหรับความหมายนี้) และ (2) ใช้ API ใหม่เพื่อบอกบริการใด ๆ ของ แอปพลิเคชันเกี่ยวกับงานที่ถูกลบเพื่อให้สามารถทำสิ่งที่คิดว่าเหมาะสม.

    เธอยังบันทึกในความคิดเห็นบล็อก:

    ที่จริงแล้วการลบรายการในงานล่าสุดจะฆ่ากระบวนการพื้นหลังใด ๆ ที่มีอยู่สำหรับกระบวนการ มันจะไม่ทำให้บริการหยุดทำงานโดยตรงอย่างไรก็ตามมี API สำหรับพวกเขาในการค้นหางานที่ถูกลบเพื่อตัดสินใจว่าพวกเขาต้องการให้สิ่งนี้หมายความว่าพวกเขาควรหยุดหรือไม่ นี่เป็นการลบการพูดว่างานล่าสุดของแอพอีเมลจะไม่ทำให้หยุดการตรวจสอบอีเมล.

    หากคุณต้องการหยุดแอพอย่างสมบูรณ์คุณสามารถกดงานล่าสุดเพื่อไปที่ข้อมูลแอพและกดปุ่มหยุดที่นั่น Force stop คือการฆ่าที่สมบูรณ์ของแอพ - กระบวนการทั้งหมดถูกฆ่า, บริการทั้งหมดหยุด, ลบการแจ้งเตือนทั้งหมด, ลบการเตือนภัยทั้งหมด, ฯลฯ แอพไม่ได้รับอนุญาตให้เปิดอีกครั้งจนกว่าจะมีการร้องขออย่างชัดเจน.

    ดังนั้นดูเหมือนว่าบทสรุปคือการปัดแอปออกจากรายการก่อนจะฆ่ากระบวนการพื้นหลังทั้งหมดสำหรับแอพจากนั้นใช้ onTaskRemoved เพื่อแจ้งให้แอปทราบว่ามีการนำงานพื้นหลังออก ณ จุดนั้นดูเหมือนว่ามันขึ้นอยู่กับแอพที่จะตัดสินใจว่าจะเกิดอะไรขึ้นดังนั้นฉันเดาว่าในทางเทคนิค ไม่ใช่ กฎที่ยากและรวดเร็วเกี่ยวกับสิ่งที่เกิดขึ้นกับแอปที่นอกเหนือจากจุดนั้น.


    มีสิ่งที่จะเพิ่มคำอธิบายหรือไม่ ปิดเสียงในความคิดเห็น ต้องการอ่านคำตอบเพิ่มเติมจากผู้ใช้ Stack Exchange คนอื่นหรือไม่ ลองอ่านหัวข้อสนทนาเต็มได้ที่นี่.