현재 실행중인 Android 앱 목록에서 앱을 스 와이프하면 애플리케이션과 데이터는 정확히 어떻게 되나요? 조사하면서 계속 읽으십시오.
오늘의 질문 및 답변 세션은 Q & A 웹 사이트의 커뮤니티 기반 그룹 인 Stack Exchange의 하위 그룹 인 Android Enthusiast에 의해 제공됩니다.
질문
Android Enthusiast reader Eldarera 이것은 홈 버튼을 통해 실행중인 앱 목록을 가져온 다음 오른쪽으로 스 와이프하여 닫을 수있는 앱 스 와이프 기능에 대해 궁금합니다.
Ice Cream Sandwich의 최근 앱 목록에는 목록에서 앱을 스 와이프하는 기능이 추가되어 앱을 영구적으로 닫을 수 있습니다. 문서 및 플랫폼 하이라이트는이 기능의 내부 작업을 다루지 않는 것처럼 보이지만 시스템이 실제로 무엇을하고 있는지 알고 싶습니다.
호기심에 더해 저는 빠른 테스트를하기로 결정했습니다. CM9 설치에서 Music을 시작한 다음 다시 제거했습니다. 그런 다음 최근 앱 목록을 확인하고 실제로 존재하는 것을 확인했습니다 (썸네일을 기준으로 적절한 상태). 나는 다음으로 갔다
설정-> 응용 프로그램강제로 음악 앱을 중지했지만 여전히 최근 목록에 표시되어 백그라운드에 남아있는 프로세스와 연결되어 있지 않다고 생각합니다.음악이 형편없는 선택 이었음을 깨닫고 USA Today 앱으로도 테스트했습니다. 이것은 기본적으로 동일한 동작을 보였으며, 최근 앱 목록의 미리보기 이미지가이를 반영하지 않았지만 (캐시 된 것 같은데?) 강제 종료 후에 강제로 '다시 시작'해야하는 것처럼 보였습니다 (이치에 맞습니다).
그렇다면 최근 목록에서 앱을 스 와이프하면 OS 수준에서 실제로 어떤 일이 발생합니까? 단순히 RAM에서 앱의 데이터를 지우고 가비지 수집하여 저장된 상태를 파괴합니까?
목록에서 앱을 스 와이프하면 정확히 어떤 일이 발생합니까?
답변
Android 열광 자 기여자 Austin Mills가 몇 가지 정보를 제공합니다.
최근 앱 목록에서 앱을 스 와이프하는 것은 바닐라이며 문서화가 잘되어 있지 않습니다. 이것은 다양한 Android 포럼에서 상당한 양의 토론의 주제였습니다. 합의가 가장 잘 설명 된 것 같습니다. 여기에 몇 가지 의견 : 동작이 앱을 닫는 것과 비슷하지만 완전히 동일하지는 않습니다. 일반적으로 (명시적인 뒤로 버튼 처리를 정의하지 않는 앱의 경우) 종료 한 애플리케이션 내에서 충분히 뒤로 눌렀을 때와 같습니다. 그것.
링크에는 세부 사항에 대한 자세한 내용이 있지만 전반적으로 응용 프로그램을 종료하는 것으로 생각할 수 있습니다.
음악 앱에 한정되어 서비스를 시작한다고 생각하므로 작업 자체 (음악 앱 / UI)가 닫혀있는 동안에도 서비스가 백그라운드에서 계속 실행되므로 작업 때문에 음악이 갑자기 중지되지 않습니다. 메모리 관리 이유로 지워졌습니다. 그것은 당신이 본 것에 영향을 미칠 수 있습니다.
그런 다음 삶의 질문 및 답변 서클에 참여한 Eldarerathis는 답을 완성하기 위해 자신의 연구를 가지고 돌아 왔습니다.
나는 구글 직원들로부터 몇 가지 설명으로 이끄는 마법의 검색어를 찾은 것 같다. 특히, Dianne Hackborn이 최근 목록에서 무언가를 스 와이프하면 어떤 일이 발생하는지 설명하는 몇 가지 다른 장소를 찾았습니다. 첫 번째는 Google+ 게시물 중 하나에 대한 댓글 :
[W] 특히 최근 작업을 스 와이프 할 때 발생합니다. (1) 응용 프로그램의 모든 백그라운드 또는 빈 프로세스를 종료합니다 (참조 : 여기 이것이 의미하는 바), (2) 새로운 불 제거되는 작업에 대해 응용 프로그램의 서비스에 알려 적절하다고 생각하는 모든 작업을 수행 할 수 있습니다.
그녀는 또한 블로그 댓글의 메모 :
실제로 최근 작업에서 항목을 제거하면 프로세스에 존재하는 모든 백그라운드 프로세스가 종료됩니다. 서비스가 직접 중지되는 것은 아니지만 작업이 제거되었는지 확인하여 중지해야 함을 의미하는지 여부를 결정하는 API가 있습니다. 이는 전자 메일 앱의 최근 작업을 제거해도 전자 메일 확인이 중지되지 않도록하기위한 것입니다.
앱을 완전히 중지하려면 최근 작업을 길게 눌러 앱 정보로 이동 한 다음 강제 종료를 누르세요. 강제 종료는 앱을 완전히 종료하는 것입니다. 모든 프로세스가 종료되고, 모든 서비스가 중지되고, 모든 알림이 제거되고, 모든 경보가 제거됩니다. 명시 적으로 요청 될 때까지 앱을 다시 시작할 수 없습니다.
요약하면 목록에서 앱을 스 와이프하면 먼저 앱의 모든 백그라운드 프로세스가 종료 된 다음
onTaskRemoved백그라운드 작업이 제거되었음을 앱에 알립니다. 그 시점에서 무슨 일이 일어날 지 결정하는 것은 앱에 달려있는 것처럼 보이므로 기술적으로는 그렇지 않다 그 지점을 넘어서 앱에 무슨 일이 일어나는지에 대한 단호하고 빠른 규칙.