“강제 정지”버튼은 무엇을 의미합니까?


26

갈 때 Settings > Applications > Manage Applications > Downloaded응용 프로그램 목록이 나타납니다. 일부 응용 프로그램을 선택하면 "강제 중지"버튼이 활성화되어 있지만 일부 응용 프로그램에는이 버튼이 흐리게 표시되어 있습니다.

무슨 뜻이에요? 이 버튼을 누르면 어떻게됩니까?

이 버튼이있는 애플리케이션은 Running섹션에 나열되어 있지 않으므로이 버튼은 애플리케이션 실행을 의미 할 수 없습니다 .

Force stop버튼이 활성화 된 응용 프로그램 만 나열 하고 제거 할 수 있습니까?


안드로이드 버전 : 3.2

답변:


18

paco의 답변에 대한 나의 의견에서 말했듯이, 그가 준 정보는 대부분 정확합니다. 대부분의 앱은 종료해도 완전히 종료되지 않으며 "홈"버튼을 통해 종료하면 종료되지 않습니다. 또한 일부 앱은 백그라운드 서비스가 실행 중이므로 사용자가 종료 할 수 없습니다.

이제 앱 (배경 서비스 포함)을 중지해야하는 상황이 있습니다. 예를 들어 해당 앱을 제거하려는 경우 (또는 시스템 앱의 경우 업데이트). "Force Stop"버튼이 활성화되면 "Uninstall"(또는 "Remove") 버튼이 회색으로 표시되지만 "Force Stop"을 통해 앱을 중지하면 후자가 활성화됩니다. 두 버튼이 모두 회색으로 표시되면 제거 할 수없는 방식으로 시스템 앱임을 알 수 있습니다.

Btw : "Force Stop"버튼이 회색으로 표시되면 (놓으면 "흐리게"표시됨) 앱이 현재 실행되고 있지 않거나 서비스가 실행되고 있지 않다는 것을 의미합니다.


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으로 테스트 할 수 없으며 (어떤 장치도 실행하지 않음) 내 머리에서 나는 어떤 패키지를 보았는지 기억하지 못합니다. 죄송합니다.
Izzy

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경우는 앱 중지되어 장치 관리자가 아닌 드문 경우를 다룹니다 . 이 경우 다른 시스템 서비스 에서 버튼을 활성화 할 수 있습니다. 예를 들어 앱에 알람이 설정되어 보류중인 경우 나중에 중지 된 상태에서도 앱이 다시 시작될 수 있습니다. 이 경우 버튼이 활성화됩니다. 다른 시스템 서비스에서 버튼을 활성화 할 이유가 없으면 비활성화됩니다.

개요

강제 종료 패키지가 장치 관리자가 아닌 경우 버튼을 활성화 하고 하나 이미이 응용 프로그램을-중단 강요하지 않았거나 당신이 그것을 힘이-중지하지만 시스템이 서비스가 다시 실행됩니다 생각합니다.

앱이 실행 중이고 장치 관리자가 아닌 경우 강제 중지 버튼이 확실히 활성화되지만 버튼이 활성화되었다고해서 앱이 실행되고있는 것은 아닙니다.


버튼의 표시 여부를 결정하는 코드를 알려 주셔서 감사합니다. 나와 같은 개발자에게는 완벽한 답변입니다. 그러나 실제로 이것은 정답의 절반에 불과합니다. 실제로 버튼을 누를 때 어떤 일이 발생하는지 보여주지 않습니다.
John Pankowicz

2

안드로이드는 메모리에 4 가지 유형의 애플리케이션을 유지합니다. 나는 모든하지만 기억 해달라고 실행캐시 된 배경 중 2 (캐시 된 배경은 하드웨어 메뉴 버튼을 클릭 할 때에 액세스 할 수 있습니다 실행 탭과 최대 poped 옵션을 선택)

따라서 실행중인 프로세스 에서 보이지 않을 수도 있지만 완전히 죽지 않았습니다.

대부분 캐시 된 백그라운드 프로세스에 있어야합니다.

또한 작업 관리자에 대해 .Android가 앱을 효율적으로 관리하기 위해 하드 코딩되어 있기 때문에 사용하지 않는 것이 좋습니다 .App / Task killers는 킬러가 앱을 죽인 후 실제로 배터리를 소모합니다 .Android 알고리즘에 따라 시작됩니다. 다시 시작합니다! (그리고 앱은 시작시 이상적인 상태보다 더 많은 메모리를 차지하므로) 사이클이되어 배터리를 소모합니다.

따라서 강제 종료 버튼은 대부분 실행되고 캐시 된 프로세스 에서 활성화되며 다른 두 가지 유형의 프로세스에있는 매우 적은 앱에 존재할 수 있습니다!

다른 앱에서는 회색으로 표시됩니다!


1
4 가지 이상의 유형입니다 (자세한 설명은 Android 애플리케이션 및 활동 라이프 사이클 이해 참조 ). 그러나 이러한 클래스는 "강제 중지"버튼과는 아무런 관련이 없으며 적어도 직접적으로는 아닙니다 ( 내 답변 참조 : 활성 "강제 중지"버튼은 단순히 앱 자체 또는 등록 된 서비스 중 하나가 현재 실행 중임을 의미합니다).
Izzy

-2

이 버튼은 기기를 마지막으로 시작한 이후에 실행 중이거나 실행중인 앱에 대해 활성화됩니다.

Android는 앱을 종료 할 때 앱을 완전히 종료하지 않습니다.이 버튼은 앱을 완전히 닫고 스택에서 제거하기 위해 (앱 실행 중)이 버튼은 앱에서 사용하는 메모리를 해제합니다.

실행중인 앱을 나열 할 방법이 없으며 백그라운드에서 실행중인 앱에도이 버튼이 있습니다.

Play 스토어에는 기기의 메모리를 자동으로 관리하는 무료 킬러 앱이 있습니다.


3
기본 정보는 정확하지만 "자동 킬러"부분을 더 잘 제거하십시오. 필요할 때 (Android 2.x 이전) 시간이 있었지만 절대적으로 비생산적이며 대부분 배터리 런타임에 부정적인 영향을 미칩니다.
Izzy
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.