App ที่ผมพัฒนาขึ้นมาหลังจากที่เราปิดไปแล้ว มันยังคงค้างอยู่ที่หน้า Running ใน Manage Apps อ่ะครับ
มีคำอธิบายมั้ยครับ ว่าเป็นเพราะอะไร และวิธีแก้มีหรือไม่
ไม่อยากใช้ System.exit(0) ครับ
ดูข้อมูลเพิ่มเติมเกี่ยวกับนโยบายความเป็นส่วนตัว และการใช้คุกกี้ของเราคลิก
คุกกี้เหล่านี้มีความสำคัญต่อการให้บริการบนเว็บไซต์แก่คุณ และเพื่อให้คุณสามารถใช้คุณลักษณะบางอย่างได้ คุกกี้เหล่านี้ช่วยในการยืนยันตัวบุคคลของผู้ใช้งานและช่วยป้องกันการปลอมแปลงบัญชีผู้ใช้งาน หากไม่มีคุกกี้เหล่านี้เราอาจไม่สามารถให้บริการแก่คุณได้ เราใช้คุกกี้ดังกล่าวนี้เพื่อให้บริการแก่คุณ
แม้ว่าอาจเกิดคุกกี้ แต่อาจไม่สามารถบันทึกได้เนื่องจากมีสมุดบันทึกที่คุณสามารถอัปเดตได้เว็บไซต์นี้อาจมีคุกกี้หรืออาจเกิดคุกกี้ใหม่อีกครั้ง
ดูข้อมูลเพิ่มเติมคลิก
ผมใช้ kill process เลยครับ
android.os.Process.killProcess(android.os.Process.myPid());
หรือท่านอื่นมีวิธีที่ดีกว่านี้แนะนำด้วยครับ รอฟังเช่นกัน
🙂
อันนี้คล้ายๆ System.exit(0) ครับ
อย่างไรก็ตาม ขอบคุณครับ ได้รู้จักวิธีใหม่ๆ อีกวิธีนึง
System.runFinalizersOnExit(true)
อันนี้ลองแล้วครับ แต่ยังเป็นแบบเดิมเลย คือยังไม่ยอมตายง่ายๆ หรือว่ามันเป็นอมตะ?
ขอบคุณครับ
ผมก้อสงสัยปัญหานี้อยู่เหมือนกันครับที่ใช้จริงๆก้อ System.exit(0); ถ้าเรา finish(); ทุกๆ Activity ที่เราเปิดจะได้มั๊ยครับ
finish() ทุก Activity ผมลองแล้วครับ
runFinalizeOnExit() ทุก Activity ก็ลองแล้วครับ
ลองมาหลายแบบยังไม่เห็นผล แต่ System.exit(0) ที่ Root Activity ตัวเดียวอยู่นะ
แต่มันห้วนๆ ยังไงไม่รุ – –
System.exit(0); มันwork ครับ แต่มันจะไม่รองรับการ เปิดปิด database แล้วก้อ Service บางอย่างอ่ะครับ มันห้วนๆไปจริงๆ
ผมหาข้อมูลดูจากหลายๆ เว็บแล้วเค้าก็ไม่แนะนำครับ
เค้าบอกว่ามันเป็นที่ OS
แล้วจะ ฆ่ามันทิ้งทำไมหร๋อครับ โดยปกติ ตัว Android OS จะไม่ปิด app ไปก่อน จะยังเก็บ app นั้นๆ ไว้ในหน่วยความจำก่อน เพื่อว่าผู้ใช้ต้องการกลับมาใช้จะได้เปิดขึ้นได้เร็วทันใจ
ฟอเเมตเครื่องไปเลยครับ ตายสนิท อิอิ
(ล้อเล่นนะครับ^^)
มี thread รันค้างอยู่รึเปล่าครับ
ต้องทำให้ thread นั้นตายก่อนออกจากโปรแกรม
เข้าไป stop มัน ใน running program ก้อน่าจะหยุดนะคับ ไม่งั้นก้อ uninstall และ delete data file ทิ้งไปเลย ตายชัวร์ …อิอิ
เป็น feature ของ android OS ครับ
เขาบอกว่า memory เหลือทิ้งไว้เปล่าๆก็ไม่มีประโยชน์ ดังนั้นจึงให้ memory เก็บ app ต่างๆที่ run ล่าสุดเอาไว้ก่อน เผื่อโดน start ขึ้นมาใหม่จะได้เอามาใช้ได้เลย จนกว่า app อื่นต้องการจะใช้ memory แล้วไม่พอ จึงจะทำการปิดตัวที่นะจะโดนใช้น้อยสุดลงไปครับ
คุณลองๆๆ
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
moveTaskToBack(true);
return true;
}
return super.onKeyDown(keyCode, event);
}
ขอบคุณครับ
แบบนั้น App ไม่ตายครับ แค่เปลี่ยนไปทำงานเป็น background process
ไม่ได้ครับ ต้อง force close ที่ application manager หรือ app ที่ kill process
เอาเป็นวิธีการเขียนโปรแกรมสิครับ
ตอนนี้ไม่สนแล้วครับว่ามันจะตายหรือไม่ตาย ในเมื่อแอพฯ ของแอนดรอยด์ตัวที่มาจากกูเกิลเองมันยังไม่ยอมตาย แล้วเราจะไปสนทำไม
วิศวกรของกูเกิลบอกว่ามันเป็นฟีเจอร์นะครับ แต่พอดีว่าบางเครื่อง RAM มันน้อยน่ะครับคุณวิศวกร ถ้าเข้าไปคาอยู่ในเมมสัก 10 แอพฯ RAM ไม่เกลี้ยงหมดเหรอ (วะ) ครับ