ปุ่ม“ บังคับหยุด” หมายความว่าอะไร


26

เมื่อฉันไปที่Settings > Applications > Manage Applications > Downloadedฉันเห็นรายการแอปพลิเคชัน หากฉันเลือกแอปพลิเคชั่นบางตัวฉันเห็นปุ่ม "บังคับหยุด" ใช้งานอยู่ แต่แอพพลิเคชั่นบางตัวมีปุ่มนี้มืด

มันหมายความว่าอะไร? จะเกิดอะไรขึ้นถ้าฉันกดปุ่มนี้

ปุ่มนี้สามารถประยุกต์ใช้ไม่ได้หมายถึงการทำงานตั้งแต่การใช้งานด้วยปุ่มนี้ไม่ได้อยู่ในRunningส่วน

ฉันสามารถแสดงรายการแอพพลิเคชั่นที่มีForce stopปุ่มเปิดใช้งานอยู่และถอนการติดตั้งได้หรือไม่?


รุ่น Android: 3.2

คำตอบ:


18

ดังที่ได้กล่าวไว้ในความคิดเห็นของฉันต่อคำตอบของ paco ข้อมูลที่เขาให้ไว้ส่วนใหญ่จะถูกต้อง: แอพส่วนใหญ่จะไม่ออกอย่างสมบูรณ์หากคุณออกไปและไม่ควรออกจากแอพหากคุณปล่อยให้มันผ่านปุ่ม "Home" นอกจากนี้แอพบางตัวยังมีบริการแบ็คกราวน์ซึ่งผู้ใช้ไม่สามารถปิดได้

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

Btw: หากปุ่ม "บังคับหยุด" เป็นสีเทา ("จาง" ตามที่คุณวางไว้) นั่นหมายความว่าแอปนั้นไม่ได้ทำงานอยู่ในขณะนี้หรือไม่มีบริการใด ๆ ทำงานอยู่ (ในขณะนั้น)


1
You will notice this when the "Force Stop" button is active, the "Uninstall" (or "Remove") button is grayed outคุณสามารถให้แอปตัวอย่างที่มีพฤติกรรมนี้ได้หรือไม่ ฉันอ่านผ่านแอพบางตัวของฉันและพบว่ามีการเปิดใช้งานทั้งปุ่ม "บังคับหยุด" และ "ถอนการติดตั้ง" ฉันใช้ Android 4.4.2
cychoi

1
เนื่องจากคำตอบของฉันมีอายุ 2 ปีแล้ว Kitkat จึงไม่สามารถใช้งานได้ในตอนนั้น พฤติกรรมนี้อาจมีการเปลี่ยนแปลงหรือไม่มีผลกระทบต่อแอพทั้งหมด ฉันไม่สามารถทดสอบกับ Kitkat (ไม่มีอุปกรณ์ที่ใช้งาน) และ out-of-my-head จำไม่ได้ว่าแพคเกจใดที่ฉันเคยเห็นด้วยด้วยขอโทษ
อิซซี

15

รหัสที่อยู่เบื้องหลังกองกำลังหยุดปุ่มมีความซับซ้อนและไม่มีเอกสาร ฉันจะทำซ้ำมันเป็นคำต่อคำและจากนั้นผ่านมันทีละชิ้น

private void checkForceStop() {
    if (mDpm.packageHasActiveAdmins(mPackageInfo.packageName)) {
        // User can't force stop device admin.
        updateForceStopButton(false);
    } else if ((mAppEntry.info.flags&ApplicationInfo.FLAG_STOPPED) == 0) {
        // If the app isn't explicitly stopped, then always show the
        // force stop button.
        updateForceStopButton(true);
    } else {
        Intent intent = new Intent(Intent.ACTION_QUERY_PACKAGE_RESTART,
                Uri.fromParts("package", mAppEntry.info.packageName, null));
        intent.putExtra(Intent.EXTRA_PACKAGES, new String[] { mAppEntry.info.packageName });
        intent.putExtra(Intent.EXTRA_UID, mAppEntry.info.uid);
        intent.putExtra(Intent.EXTRA_USER_HANDLE, UserHandle.getUserId(mAppEntry.info.uid));
        getActivity().sendOrderedBroadcast(intent, null, mCheckKillProcessesReceiver, null,
                Activity.RESULT_CANCELED, null, null);
    }
}

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

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

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

สรุป

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

หากแอปกำลังทำงานอยู่ (และไม่ใช่ผู้ดูแลอุปกรณ์) ปุ่มบังคับให้หยุดทำงานจะเปิดใช้งานอย่างแน่นอน แต่ปุ่มที่เปิดใช้งานไม่ได้หมายความว่าแอปกำลังทำงานอยู่


เป็นเรื่องที่ดีมากที่คุณแสดงรหัสที่กำหนดว่าปุ่มแสดงหรือไม่ ถึงนักพัฒนาอย่างฉันนั่นคือคำตอบที่สมบูรณ์แบบ แต่จริงๆแล้วนี่เป็นเพียงครึ่งเดียวของคำตอบ คุณจะไม่แสดงสิ่งที่เกิดขึ้นเมื่อคุณกดปุ่ม
John Pankowicz

2

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

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

ส่วนใหญ่จะเป็นในพื้นหลังที่แคช prcesses

นอกจากนี้เกี่ยวกับตัวจัดการงาน .. ไม่แนะนำให้ใช้เพราะ Android ได้รับการ hardcoded ในการจัดการแอปอย่างมีประสิทธิภาพ App/Task killers จริง ๆ แล้วค่อนข้างระบายแบตเตอรี่หลังจากที่นักฆ่าฆ่าแอปตามอัลกอริทึม android ดังนี้พวกเขาจะเริ่ม อีกครั้ง! (และแอปใช้หน่วยความจำค่อนข้างมากเมื่อเริ่มต้นมากกว่าอยู่ในสถานะที่เหมาะ) ดังนั้นจึงกลายเป็นวงจรและใช้พลังงานจากแบตเตอรี่

ดังนั้นปุ่มบังคับปิดจะใช้งานในกระบวนการทำงานและแคชเป็นส่วนใหญ่และอาจมีอยู่ในแอปเพียงไม่กี่ตัวที่อยู่ในกระบวนการอีกสองประเภท!

ในแอปอื่น ๆ มันยอดเยี่ยม!


1
มันมีมากกว่า 4 ประเภท (ดูที่การทำความเข้าใจกับแอปพลิเคชัน Android และรอบอายุกิจกรรมเพื่อดูคำอธิบายเพิ่มเติม) แต่คลาสเหล่านั้นไม่มีส่วนเกี่ยวข้องกับปุ่ม "บังคับให้หยุด" อย่างน้อยก็ไม่ตรง (ดูคำตอบของฉัน : ปุ่ม "หยุดบังคับ" ที่ใช้งานอยู่นั้นหมายถึงว่าตัวแอปเองหรือบริการที่ลงทะเบียนอย่างใดอย่างหนึ่งกำลังทำงานอยู่)
Izzy

-2

ปุ่มนี้ใช้งานได้สำหรับแอพที่กำลังทำงานหรือกำลังทำงานอยู่ตั้งแต่ครั้งสุดท้ายที่คุณเริ่มอุปกรณ์ของคุณ

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

ไม่มีวิธีที่จะแสดงรายการแอพที่กำลังทำงานอยู่และแอพที่ทำงานอยู่เบื้องหลังมีปุ่มนี้

มีแอพนักฆ่าฟรีใน Play Store เพื่อจัดการหน่วยความจำของอุปกรณ์ของคุณโดยอัตโนมัติ


3
ในขณะที่ข้อมูลพื้นฐานที่ถูกต้อง: ดีกว่าลบส่วนที่เกี่ยวกับ "นักฆ่าอัตโนมัติ" อาจมีบางเวลาที่พวกเขาต้องการ (ก่อน Android 2.x) แต่พวกเขามีประสิทธิภาพในทางตรงกันข้ามและส่วนใหญ่จะมีผลกระทบเชิงลบต่อการใช้งานแบตเตอรี่
Izzy
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.