안드로이드 폰에서“홈”버튼을 누르면 실행중인 프로그램은 어떻게 되나요?


27

한 가지가 나를 당혹스럽게한다. Android에서 일부 프로그램을 사용하고 "홈"버튼을 누르면 홈 화면이 표시되고 프로그램을 다시 실행하고 프로그램을 이전과 동일한 상태로 볼 수 있습니다. 따라서 프로그램이 완전히 다시 시작되지 않은 것처럼 보입니다. 방금 일시 중지했다가 다시 시작했습니다.

그러나 그것은 Air Control 게임과 일치하지 않는 것 같습니다. 때때로 Air Control을 재생하고 "home"을 누른 다음 Air Control을 다시 실행하면 일시 중지되고 ( "일시 중지"버튼을 누른 것처럼) 게임을 다시 시작할 수 있습니다. 때때로 같은 결과로 에어 컨트롤이 게임을 중단하고 새로 시작하게됩니다.

그래서 나는 무언가를 이해하지 못하는 것처럼 보입니다.

여기서 거래는 무엇입니까? "홈"을 누르면 프로그램은 어떻게됩니까? 계속 실행됩니까? 아니면 무엇을합니까?


홈 버튼을 누르면 더 높은 전력 소모가 발생합니다.
Flow

답변:


12

를 누르면 Home앱이 백그라운드에서 실행되는 동안 앱에서 홈 화면으로 전환됩니다. 이것은 Windows PC에서 창을 전환하는 것과 약간 같습니다.

휴대 전화에 메모리와 같은 리소스가 부족한 경우를 제외하고 백그라운드에서 실행중인 앱이 닫히기 시작하여 휴대 전화에 현재 수행하려는 작업에 필요한 리소스가 충분 해집니다. 게임은 종종 다른 앱보다 많은 메모리와 CPU를 사용하기 때문에 휴대 전화가 리소스를 절약하기 위해 "킬 (kill)"하는 첫 번째 앱 중 하나입니다. 그렇기 때문에 때때로 게임이 여전히 일시 정지 된 상태로 실행되고 때로는 Android가 게임을 종료했습니다.

Back버튼을 실제로 폐쇄되도록 가까운 애플 리케이션에 대한 방법입니다.

Android에서 앱을 닫는 올바른 방법은 무엇입니까?를 참조하십시오 .


26

안드로이드 개발 문서 Tasks와 Back Stack은 실제로 이것을 꽤 잘 다루고 있습니다. 관련 발췌 :

작업은 사용자가 새 작업을 시작하거나 HOME 키를 통해 홈 화면으로 이동할 때 "배경"으로 이동할 수있는 응집력있는 단위입니다. 백그라운드에서 작업의 모든 활동이 중지되었지만 작업의 백 스택은 그대로 유지됩니다. 그림 2와 같이 다른 작업이 수행되는 동안 작업의 포커스가 사라졌습니다. 작업은 " 포 그라운드로 이동하여 사용자가 중단 한 부분을 집어들 수 있습니다. 예를 들어, 현재 작업 (작업 A)에 스택에 세 개의 활동 (현재 활동에 따라 두 개)이 있다고 가정합니다. 사용자는 HOME 키를 누른 다음 응용 프로그램 시작 관리자에서 새 응용 프로그램을 시작합니다. 홈 화면이 나타나면 작업 A가 백그라운드로 이동합니다. 새 응용 프로그램이 시작되면 시스템은 고유 한 활동 스택으로 해당 응용 프로그램 (작업 B)에 대한 작업을 시작합니다. 해당 응용 프로그램과 상호 작용 한 후 사용자는 홈으로 다시 돌아와서 원래 작업 A를 시작한 응용 프로그램을 선택합니다. 이제 작업 A가 포 그라운드로 이동합니다. 이제 스택의 세 가지 활동이 모두 그대로 유지되고 스택 맨 위의 활동이 다시 시작됩니다. 이 시점에서 사용자는 홈으로 이동하여 해당 작업을 시작한 응용 프로그램 아이콘을 선택하거나 HOME 키를 길게 눌러 최근 작업을 표시하고 하나를 선택하여 작업 B로 다시 전환 할 수도 있습니다. 이것은 Android에서 멀티 태스킹의 예입니다. 사용자는 홈으로 이동하여 해당 작업을 시작한 응용 프로그램 아이콘을 선택하거나 HOME 키를 길게 눌러 최근 작업을 표시하고 하나를 선택하여 작업 B로 다시 전환 할 수도 있습니다. 이것은 Android에서 멀티 태스킹의 예입니다. 사용자는 홈으로 이동하여 해당 작업을 시작한 응용 프로그램 아이콘을 선택하거나 HOME 키를 길게 눌러 최근 작업을 표시하고 하나를 선택하여 작업 B로 다시 전환 할 수도 있습니다. 이것은 Android에서 멀티 태스킹의 예입니다.

참고 : 한 번에 여러 작업을 백그라운드에서 유지할 수 있습니다. 그러나 사용자가 동시에 많은 백그라운드 작업을 실행하는 경우 시스템은 메모리를 복구하기 위해 백그라운드 활동을 삭제하기 시작하여 활동 상태가 손실 될 수 있습니다. 활동 상태에 대한 다음 섹션을 참조하십시오.

요약 : Home실제로 아무 것도하지 않고 상태를 유지하면서 메모리에을 누르고 앉아 있으면 작업이 배경으로 이동합니다 . 즉, (일반적으로 말하면) 작업으로 다시 전환 할 수 있으며 중단 된 위치에서 작업을 수행합니다. 그러나 안드로이드 시스템은 메모리를 되 찾아야 할 경우 백그라운드 작업을 죽일 수 있으며 죽일 수도 있습니다. 이런 일이 언제 발생하는지는 전적으로 시스템에 달려 있으며, 아마도 다시 시작할 때 일관되지 않은 동작이 나타나는 것입니다.

시스템에서 작업을 삭제 한 경우 다시 시작할 때 다시 작성해야합니다. 따라서 응용 프로그램 제작자가 파괴 프로세스 중에 응용 프로그램의 상태를 저장하기위한 조치를 취하지 않으면 응용 프로그램이 손실됩니다 ( 게임과 같은 상황에서 정확한 상태를 저장하는 것은 상당히 비현실적입니다).

또 다른 좋은 (그러나 자세한) 문서는 활동 수명주기를 다루는 문서입니다 (아래로 조금 스크롤하면 멋진 흐름도가 있습니다).


따라서 활동 / 프로세스가 아닌 작업별로 죽습니다. 후자는 부분적인 작업 종료를 허용하며, 이는 바람직하지 않습니다.
jiggunjer

4

Home 키를 누르면 실행기를 표시하여 새 작업을 시작할 수 있습니다. 모든 활성 작업 (따라서 "Air Control"예제를 포함한 활동)은 해당 메서드 를 호출합니다 onPause().

다시 표시 될 때 정확한 이전 상태를 복원하는 것은 앱 (및 해당 활동)에 달려 있습니다. 활동이 백그라운드에있는 동안 앱 프로세스가 종료 될 수도 있지만 이는 사용자 경험에 영향을 미치지 않습니다. 활동이 일시 중지되었거나 종료 된 경우 사용자는 차이를 알 수 없어야합니다. 이것은 안드로이드 라이프 사이클 관리의 잘못된 구현을 암시 할 수있는 Air Control의 다양한 동작을 설명 할 수 있습니다.


나는 "죽은"것에 의해 당신은 파괴와는 반대로 중단을 의미한다고 생각합니다. 나는 당신이 프로세스를 죽일 때 일반적인 리눅스 용어를 믿는다 destroy().
jiggunjer

아뇨.
흐름

홈 키를 누르면 onStop메소드가 호출됩니다. 프로세스가 종료 onDestroyed되었다고 해서 액티비티가 메소드를 호출 한다는 의미는 아니지만 실제로는 비슷합니다. 활동 프로세스를 "완료"하면 VM이 RAM에서 제거됩니다. 나에게 이것은 (Android killing) 사용자 경험에 영향을 줄 것 같습니다.
jiggunjer

4

이 사이트에서 투표하기에는 여전히 저의 명성이 너무 낮아서 Flow의 답변을 강조하기 위해 대답하고 있습니다. 내 앱 중 하나 에서이 문제가 계속 발생합니다. 다양한 스피너 컨트롤이 있으며 onPause ()에 상태를 명시 적으로 저장 한 다음 onResume ()에서 상태를 복원해야합니다 .Android는 상태를 자동으로 기억하지 않습니다.

또 다른 합병증은 때로는 Android가 onResume () 만 호출 할 때 앱의 onCreate () 함수를 호출한다는 것입니다.

따라서 Air Control (또는 다른 앱) 관련 문제는 해당 앱에만 해당되므로 문제를 개발자에게보고하여 수정해야합니다. 대부분의 앱은 마켓에 연락처 이메일이 있습니다.

BTW, 앱 수명주기를 이해하려면 Ed Burnette의 Hello, Android 2 장, 특히 그림 2.3을 권장합니다.


3

앱에서 누르면 홈 버튼 :

대부분의 앱은 상태 (다시 시작할 때 일관성을 유지하는 데 필요한 모든 데이터)를 저장하며 기기는 실행기 앱으로 전환됩니다.

홈 버튼 홈 화면에서 누르면 :

이것은 많은 타사 발사기로 구성 할 수 있습니다. 그러나 많은 것들이 당신의 "메인"홈 화면으로 돌아갑니다.

친구가 염려 할 사항 :

스위칭 앱은 메모리를 많이 사용하며 여러 디스크 쓰기로 인해 데이터가 저장 될 수 있습니다. 이것은 배터리를 사용합니다. 그러나 일반적으로 장치에서 배터리 소모의 주요 원인은 아닙니다 (운영 체제는 이러한 작업을 수행하도록 최적화되어 있음).

일부 애플리케이션은 백그라운드 애플리케이션으로 계속 실행되므로 홈 버튼을 눌러도 종료되지 않습니다 (예 : 홈 버튼을 누른 후에도 Google Play 뮤직이 계속 재생 됨).

친구는 홈 버튼을 눌러도 프로그램을 종료하지 않았으므로 여전히 실행되고 있다는 것을 염려 할 수 있습니다. Android는 필요에 따라 해당 애플리케이션을 언로드합니다.

당신과 당신의 친구는 가장 많은 양의 전력을 사용하는 디스플레이에 더 관심을 가져야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.