ฉันจะหยุดแอพไม่ให้ถูกฆ่าขณะนอนหลับได้อย่างไร


11

ฉันมี Droid 2 ฉันมีเกมที่ใช้ทรัพยากรยาวนาน (วิญญาณผี) ที่ฉันต้องการออกจากการทำงานในขณะที่ฉันไม่ได้ใช้โทรศัพท์ ถ้าฉันกดปุ่ม "โฮม" ของ Android เพื่อกลับไปที่หน้าจอหลักจากนั้นเปิดเกมขึ้นใหม่ทันทีมันจะอยู่ในตำแหน่งที่ถูกต้อง เหมือนกันถ้าฉันกดปุ่มเปิดปิดเพื่อเข้าสู่โหมดสลีปแล้วเปิดโทรศัพท์ปลดล็อคและเปิดเกมใหม่ทันที

ถ้าฉันปล่อยให้เวลา (ไม่กี่ชั่วโมง) จากนั้นเมื่อฉันกลับมาและเปิดเกมมันจะเริ่มใหม่ราวกับว่ามันไม่เคยวิ่ง ไม่ได้ใช้โทรศัพท์เพื่ออะไรในระหว่างนี้แม้ว่าจะเปิดการซิงค์อยู่

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

ฉันคุ้นเคยกับแนวคิดของการล้างหน่วยความจำ Android ตามที่ต้องการและไม่จำเป็นต้องมี task killer แต่ฉันต้องการให้มันไม่ฆ่าภารกิจนี้เว้นแต่ฉันจะออกจากมันจริงๆ


ฉันคิดว่าคุณไม่สามารถเข้าถึงรหัสจริงได้หรือไม่
Nanne

ถูกต้องแอปเหล่านี้เป็นแหล่งข้อมูลปิดซื้อจาก App Store
Jason Viers

คำตอบ:


2

ฉันค่อนข้างมั่นใจว่าไม่ใช่ตัวเลือกในการออกแบบเริ่มต้นของ android ฉันไม่เคยเห็นแอพสำหรับสิ่งนั้นเพราะคนส่วนใหญ่ต้องการให้โปรแกรมปิดเพื่อรักษาความเร็วของโทรศัพท์ เป็นระบบ Android ที่ปิดโปรแกรมที่ไม่ได้ใช้งานลง ผู้สร้างแอพจะต้องออกแบบบริการเพื่อให้มันทำงานในพื้นหลังหรือเป็นไปได้เช่นการคำนวณหรือเสียงเสมอดังนั้นระบบจะคิดว่าโปรแกรมกำลังทำอะไรอยู่ นั่นจะทำให้แบตเตอรี่หมด


ในขณะที่ประโยคแรกและประโยคที่สามของคุณถูกต้อง แต่คนอื่นไม่ได้
Michael

2

คำแนะนำ: ใช้Taskerเพื่อปิดใช้งานการหมดเวลาหน้าจอสำหรับแอปของคุณ สิ่งนี้อาจป้องกันไม่ให้ไปที่พื้นหลัง


ฉันจะลองดูและลองดูขอบคุณ! ฉันจะจดบันทึกความสำเร็จหรือความล้มเหลว
Jason Viers

ฉันสามารถยืนยันได้ว่าการเปลี่ยนการหมดเวลาหน้าจอใน Tasker จะไม่ป้องกันไม่ให้แอปถูกฆ่า ขอบคุณสำหรับคำแนะนำแม้ว่า
Jason Viers

1
รอนี่จะเป็นการป้องกันไม่ให้หน้าจอปิดหรือไม่ ดังนั้นการสิ้นเปลืองแบตเตอรี่
Michael

2

ในส่วนแรกของคำถามของคุณ

ฉันจะรับข้อมูลเพิ่มเติมเกี่ยวกับแอพที่ถูกฆ่าได้เมื่อใดและเพราะเหตุใด

SDK ของ Android มีการสรุปอย่างรวดเร็วบนหน่วยความจำ Android http://developer.android.com/guide/topics/fundamentals.html

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

ดังนั้นสรุปได้อย่างมีประสิทธิภาพ Android เป็นโปรแกรมฆ่าเมื่อกำหนดว่าคุณไม่ได้ใช้มัน (ฉันคลิกออกจากแอพ) หรือเมื่อทรัพยากรหมด ตัวอย่างเช่นถ้าคุณมี RAM 512 MB และฟรี 10 รายการและคุณเปิดแอปที่ต้องการ 12 มันจะพยายามกำหนดแอพที่ใช้งานน้อยที่สุดที่สามารถรับได้ 12 ตัว

มันมีแนวโน้มที่จะทำสิ่งนี้ได้ค่อนข้างดี (อย่างน้อยในประสบการณ์ของฉัน) คุณอาจจะกลับบ้านจากเกมของคุณและทำสองสามอย่าง แต่สิ่งที่สามมันจะขับไล่เกม โปรดทราบว่าเกมโดยเฉพาะทรัพยากรนั้นมีความสำคัญดังนั้นจึงเป็นไปได้ว่าแอพจะฆ่าแอพนั้นเร็วกว่าในภายหลัง

ตอนนี้เหตุผลที่มันหายไปหลังจากเวลาผ่านไปก็คือคุณน่าจะมีกระบวนการซิงค์ที่พยายามเริ่มต้นและแข่งขันกับทรัพยากร หน้าหน่วยความจำของแอพได้รับความนิยมอย่างไม่บ่อยนัก ณ จุดนี้ดังนั้นจึงเป็นเกมที่ยุติธรรมสำหรับการเรียกคืนหน่วยความจำที่ระบบปฏิบัติการรู้สึกว่าจำเป็น

สำหรับคำถามที่สองของคุณ

ฉันจะตั้งค่าเพื่ออนุญาตให้แอปนี้ทำงานต่อไปได้อย่างไร

ฉันไม่ได้ใช้ task killer แต่ฉันค่อนข้างมั่นใจว่าคนดี (ดูเหมือนว่า ATK เป็นผู้นำhttps://market.android.com/details?id=com.rechild.advancedtaskkiller&feature=search_result ) มีข้อยกเว้น รายการ. อาจเป็นไปได้ที่จะอนุญาตเกมที่คุณต้องการและบัญชีดำในกระบวนการอื่น ๆ

ฉันไม่คุ้นเคยกับเกมนี้ดังนั้นฉันจึงไม่แน่ใจว่าความสามารถในการบันทึกอัตโนมัติและสิ่งนี้มีอะไรบ้าง หวังว่าฉันจะช่วย


1

จะรับข้อมูลเพิ่มเติมได้อย่างไรว่าแอพใดถูกฆ่าและทำไม

คุณสามารถเชื่อมต่อโทรศัพท์ของคุณกับadb ; แล้วเปิดlogcat ; บันทึกผลลัพธ์ไปยังไฟล์
ในล็อกไฟล์คุณจะมีข้อมูลมากมาย โดยค้นหาชื่อแอปของคุณ คุณสามารถทราบได้เมื่อมันถูกฆ่า

คุณจะทำอย่างไรเพื่อป้องกันไม่ให้ระบบ Android หยุดทำงาน?
ฉันไม่รู้ หวังว่าคำตอบ rAndy จะทำงาน
อย่างไรก็ตาม; ฉันจะติดต่อผู้พัฒนาและแจ้งปัญหาแก่เขาเพราะเขา / เธอควรมีเวลาที่ง่ายที่สุดในการแก้ไข


ฉันกำลังจะพูดถึงวิธีการแก้ปัญหา logcat แค่ต้องการเพิ่มว่าคุณมองหา ActivityManager ด้วย (มันเป็น androids ภายใน "task killer") คุณไม่สามารถป้องกัน android จากแอป killings แนวคิดของ Android คือถ้ากระบวนการแอพถูกฆ่าอย่างสมบูรณ์แอพควรจะสามารถกู้คืนสถานะเดิมได้ ดังนั้นผู้พัฒนาแอพต้องแน่ใจว่าคุณไม่ได้เริ่มเกมตั้งแต่ต้น
ไหล
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.