작업 및 백 스택

작업은 사용자가 작업을 시도할 때 상호작용하는 활동의 모음입니다. 앱에서 특정 작업을 할 수 있습니다. 이러한 활동은 백 스택으로 설정되어 있을 수 있습니다.

예: 이메일 앱 새 메시지 목록을 표시하는 활동이 하나 있을 수 있습니다. 사용자가 메시지가 표시되면 해당 메시지를 볼 수 있는 새 활동이 열립니다. 새 활동이 추가되었습니다. 넣었습니다 그런 다음 사용자가 뒤로를 탭하거나 동작을 취하면 새 활동이 종료되고 스택에서 팝됩니다.

작업 및 백 스택의 수명 주기

기기의 홈 화면은 대부분의 작업이 시작되는 위치입니다. 사용자가 터치하는 경우 앱 런처 또는 홈 화면에 있는 앱 또는 바로가기의 아이콘 앱의 작업이 포그라운드로 나오게 됩니다. 앱에 작업이 없으면 새 태스크가 생성되고 기본 해당 앱의 활동이 열립니다. 를 사용합니다.

현재 활동이 다른 활동을 시작하면 새 활동이 상단에 푸시됩니다. 포커스를 받습니다. 이전 활동은 스택에 남아있지만 중지됩니다. Activity가 중지되면 시스템은 Activity의 현재 상태를 보존합니다. 구성할 수 있습니다. 사용자가 뒤로 작업을 실행하면 현재 활동은 스택 맨 위에서 팝되고 소멸됩니다. 이 이전 활동이 재개되고 UI의 이전 상태가 복원됩니다.

스택이 다시 정렬되지 않고 있는 것처럼 스택으로 푸시되고 팝됩니다. 현재 활동으로 시작하고 사용자가 닫은 경우 '뒤로' 버튼이나 동작을 통해 따라서 백 스택은 후입선출 객체 구조를 사용합니다. 그림 1은 백 스택으로 푸시되고 백 스택에서 팝되는 활동

그림 1. 작업의 새로운 각 활동이 백 스택에 항목을 추가하는 방식을 나타냅니다. 사용자가 탭하거나 동작을 취할 때 뒤로, 현재 활동이 소멸되고 이전 활동 이력서가 있습니다.

사용자가 뒤로를 계속 탭하거나 동작하면 스택의 각 활동이 팝니다. 사용자가 홈으로 돌아올 때까지 이전 항목이 표시됩니다. 화면 또는 작업이 시작될 때 실행 중이었던 활동으로 이동합니다. 모든 활동이 스택에서 제거되면 작업이 더 이상 존재하지 않습니다.

루트 런처 활동의 뒤로 탭 동작

루트 런처 활동은 인텐트 필터 ACTION_MAINCATEGORY_LAUNCHER 이러한 활동은 다른 앱들로부터 앱으로 들어가는 진입점 역할을 하기 때문에 앱 런처에 연결되고 작업을 시작하는 데 사용됩니다.

사용자가 루트 런처 활동에서 뒤로를 탭하거나 동작을 취하면 시스템은 이벤트를 처리하는 Android 버전에 따라 이벤트를 다르게 처리합니다. 확인할 수 있습니다

Android 11 이하의 시스템 동작
시스템이 활동을 완료합니다.
Android 12 이상에서의 시스템 동작

시스템은 활동과 그 작업을 백그라운드로 이동하는 대신 활동을 마무리하는 과정입니다. 이 동작은 다음 경우의 기본 시스템 동작과 일치합니다. 홈 버튼 또는 동작을 사용하여 앱에서 나가기

대부분의 경우 이 동작은 사용자가 앱을 더 빠르게 재개할 수 있음을 의미합니다. 웜 상태에서 콜드 상태에서 앱을 완전히 다시 시작해야 할 경우 상태가 될 수 있습니다.

맞춤 뒤로 탐색을 제공해야 하는 경우 이 API를 재정의하는 대신 AndroidX Activity API를 사용하는 것이 좋습니다. onBackPressed()입니다. AndroidX Activity API는 자동으로 시스템을 가로채는 구성요소가 없는 경우 적절한 시스템 동작 뒤로 탭

하지만 앱이 onBackPressed() 처리 뒤로 탐색 및 활동 완료, 구현을 업데이트하여 호출 super.onBackPressed()까지 완료할 수 있습니다. 전화 거는 중 super.onBackPressed()는 활동 및 작업을 백그라운드로 이동시킬 때 사용자에게 더욱 일관성 있는 탐색 환경을 제공할 수 있도록 확인할 수 있습니다

백그라운드 및 포그라운드 작업

그림 2. 두 작업: 작업 B는 다음 위치에서 사용자 상호작용을 받음 포그라운드에서 작업 A가 백그라운드에 있는 동안 있습니다.

작업은 사용자가 앱을 시작하면 백그라운드로 이동할 수 있는 응집력 있는 단위입니다. 새 할 일 또는 홈 화면으로 이동합니다. 백그라운드에서 실행되는 동안 중지되었지만 작업의 백 스택은 그대로 유지됩니다. 다른 작업이 발생하는 동안 포커스를 잃을 수 있습니다(그림 2 참고). 가 작업이 포그라운드로 돌아가서 사용자가 중단한 지점부터 다시 시작할 수 있습니다. 사용 중지됩니다.

현재 작업 A에 대해 다음과 같은 작업 흐름을 고려해 보세요. 현재 활동 아래에 두 개를 비롯하여 스택에 세 개의 활동이 있습니다.

  1. 사용자가 홈 버튼이나 동작을 사용한 후 앱 런처가 있습니다.

    홈 화면이 나타나면 작업 A는 백그라운드로 전환됩니다. 새 앱이 시작되면 시스템은 자체 스택이 있는 해당 앱의 작업 (작업 B)을 시작함 활동입니다.

  2. 사용자는 앱과 상호작용한 후 다시 홈으로 돌아가 처음 작업 A를 시작한 앱일 수 있습니다.

    이제 작업 A가 포그라운드로 나옵니다. 스택에 있는 세 가지 활동은 모두 정상 상태로 전환되고 스택 맨 위의 활동이 재개됩니다. 이 시점에서 사용자는 홈으로 이동하여 앱 아이콘을 선택하여 작업 B로 다시 전환할 수도 있습니다. 최근 화면을 참조하세요.

를 통해 개인정보처리방침을 정의할 수 있습니다.

다중 활동 인스턴스

그림 3. 단일 활동을 여러 개 인스턴스화할 수 있음 확인할 수 있습니다.

앱이 백 스택의 활동이 다시 정렬되지 않기 때문입니다. 사용자가 둘 이상의 활동에서 특정 활동을 시작할 수 있게 해주며, 해당 활동의 인스턴스가 생성되어 스택으로 푸시되는 것이 아니라 이전 활동 인스턴스를 맨 위로 가져옵니다. 따라서 앱의 활동이 여러 번 인스턴스화될 수 있으며, 작업을 실행할 수 있습니다

사용자가 뒤로 버튼을 사용하여 뒤로 이동하는 경우 동작의 경우, 액티비티의 인스턴스가 실행된 순서대로 나타납니다. 각각 자체 UI 상태가 있습니다. 하지만 이 부분을 수정하여 동작을 지정할 수 있습니다. 알아보기 자세한 내용은 계정 관리 및 작업을 참조하세요.

멀티 윈도우 환경

앱이 멀티 윈도우에서 동시에 실행되는 경우 환경을 지원하며 Android 7.0 (API)에서 수준 24) 이상에서는 시스템이 각 창의 작업을 개별적으로 관리합니다. 각 여러 개의 태스크가 있을 수 있습니다. Android 기기에서 실행되는 Android 앱의 경우에도 Chromebook: 시스템에서 작업 또는 작업 그룹을 관리합니다. 기반으로 합니다

수명 주기 요약

활동 및 작업의 기본 동작 요약:

  • 활동 A가 활동 B를 시작하면 활동 A는 중지되지만 시스템은 스크롤 위치 및 양식에 입력된 텍스트 등의 상태를 유지합니다. 만약 사용자가 활동 B, 활동 A에 있는 동안 뒤로 동작을 탭하거나 사용할 때 다시 시작됩니다

  • 사용자가 홈 버튼이나 동작을 사용하여 할 일을 종료하면 활동이 중지되고 작업이 백그라운드로 들어갑니다. 시스템은 할 수 있습니다. 사용자가 나중에 작업을 시작한 런처 아이콘을 선택하면 스택의 맨 위에 있는 활동을 재개합니다.

  • 사용자가 뒤로를 탭하거나 동작을 취하면 현재 활동이 폐기되도록 할 수 있습니다 스택의 이전 활동이 재개됩니다. 날짜 활동이 소멸되면 시스템은 활동의 상태를 유지하지 않습니다.

    이 동작은 루트 런처 활동에 따라 다릅니다. 앱이 Android 12 이상을 실행하는 기기에서 실행되는 경우

  • 활동은 여러 번 인스턴스화될 수 있으며 심지어 다른 작업으로부터도 인스턴스화될 수 있습니다.

를 통해 개인정보처리방침을 정의할 수 있습니다.

작업 관리

Android는 배치를 통해 작업과 백 스택을 첫 번째 마지막 시점에 동일한 작업에서 연속으로 시작된 모든 활동 있습니다. 이 기능은 대부분의 앱에서 잘 작동하며 대개 걱정할 필요가 없습니다. 활동이 작업과 연결되는 방식 또는 활동이 뒤에 존재하는 방식 있습니다

그러나 정상적인 동작을 중단시켜야 할 수도 있습니다. 예를 들어 앱의 활동이 시작될 때 새 작업을 시작하도록 하고 싶을 수 있습니다. 시작됨, 현재 작업 내에 배치되는 대신 또는 활동을 재개하는 대신 그 인스턴스의 기존 인스턴스를 백 스택 위에 새 인스턴스를 생성합니다. 또는 백 스택에서 루트 활동을 제외한 모든 활동을 삭제하려고 함 사용자가 작업을 나갈 때

이러한 작업은 물론 <activity> 매니페스트 요소 및 플래그를 지정하여 startActivity()

태스크 관리에 사용할 수 있는 주요 <activity> 속성은 다음과 같습니다.

그리고 다음은 사용할 수 있는 주요 인텐트 플래그입니다.

다음 섹션에서는 이러한 매니페스트 속성을 사용하는 방법을 설명합니다. 인텐트 플래그를 사용하여 활동이 작업과 연결되는 방식과 백 스택에서 동작합니다.

또한 작업과 활동이 프로덕션에 최근 화면에 표시되고 관리할 수 있습니다. 일반적으로 사용자가 시스템에 작업과 활동이 표시되는 방식을 최근 화면에 표시되며 이 동작을 수정할 필요가 없습니다. 자세한 내용은 자세한 내용은 최근 화면을 참고하세요.

실행 모드 정의

실행 모드를 사용하면 활동의 새 인스턴스가 연결되는 방식을 정의할 수 있음 현재 태스크와 연결됩니다. 두 가지 방법으로 실행 모드를 정의할 수 있습니다. 자세한 내용은 다음 섹션에서 확인할 수 있습니다.

따라서 활동 A가 활동 B를 시작하면 활동 B는 활동 B의 매니페스트에서 정의할 수 있음 현재 작업과 연결하는 방법, 활동 A는 인텐트 플래그를 사용하여 활동 B가 현재 작업과 연결될 수 있는 방법을 요청합니다

두 가지 모두 활동은 활동 B가 작업과 연결되는 방식을 정의한 다음 활동 A는 이 인텐트에 정의된 대로 요청이 활동 B의 요청에 우선하여 지정할 수 있습니다

매니페스트 파일을 사용하여 시작 모드 정의

매니페스트 파일에서 활동을 선언할 때 어떤 작업을 수행할지 결정하는 데 사용되는 <activity> 요소의 launchMode 속성으로 이동합니다.

launchMode 속성에 할당할 수 있는 실행 모드는 다섯 가지입니다.

  1. "standard"
    기본 모드입니다. 시스템이 작업에 활동의 새 인스턴스를 생성 인텐트를 라우팅합니다. 활동은 여러 번 인스턴스화되고 각 인스턴스는 서로 다른 태스크에 속할 수 있습니다. 하나의 태스크에는 여러 인스턴스가 있을 수 있습니다.
    를 통해 개인정보처리방침을 정의할 수 있습니다.
  2. "singleTop"
    활동의 인스턴스가 이미 현재 작업의 상단에 존재하는 경우 시스템은 onNewIntent() 새 인스턴스를 생성하는 대신 새 API를 사용합니다. 활동은 여러 번 인스턴스화되므로 각 인스턴스는 서로 다른 태스크에 속할 수 있습니다. 한 작업에 여러 개의 인스턴스가 있을 수 있습니다 (그러나 상단 활동이 이 백 스택의 상태는 활동의 기존 인스턴스가 아닙니다).

    예를 들어, 작업의 백 스택이 맨 위에 활동 B, C, D가 있습니다 (따라서 스택은 A-B-C-D이고 맨 위에 D가 있음). 인텐트 D 유형의 활동에 도착할 때 발생합니다. D에 기본 "standard" 실행이 있는 경우 클래스의 새 인스턴스가 시작되고 스택이 A-B-C-D-D가 됩니다. 하지만 D의 실행 모드가 "singleTop"이면 D의 기존 인스턴스는 onNewIntent()를 통해 인텐트를 수신합니다. 왜냐하면 그것이 스택의 맨 위에 있고 스택은 A-B-C-D로 유지되기 때문입니다 만약 반면에 인텐트가 B 유형의 활동에 도착하면 B의 새 인스턴스가 시작 모드가 "singleTop"여도 스택을 유지합니다.

  3. "singleTask"
    시스템이 새 작업의 루트에 활동을 생성하거나 활동을 찾습니다. 액티비티에 대한 권한을 부여하는 데 사용될 수 있습니다. 만약 이미 존재하는 경우 시스템은 기존 인스턴스에 새 인텐트를 추가해야 합니다. onNewIntent() 드림 새 인스턴스를 만드는 대신 새 인스턴스를 만듭니다. 다른 모든 그 위에 있는 활동이 제거됩니다.
    를 통해 개인정보처리방침을 정의할 수 있습니다.
    를 통해 개인정보처리방침을 정의할 수 있습니다.
  4. "singleInstance".
    동작은 시스템이 다른 이벤트를 실행하지 않는다는 점을 제외하고 "singleTask"와 동일합니다. 활동을 인스턴스를 보유하는 작업으로 가져오는 것입니다. 활동은 항상 작업의 유일한 단일 멤버입니다. 이 활동으로 시작한 모든 활동이 별도의 태스크입니다.
    를 통해 개인정보처리방침을 정의할 수 있습니다.
  5. "singleInstancePerTask".
    이 활동은 작업의 루트 활동으로만 실행될 수 있습니다. 첫 번째 활동을 만들었으므로 인스턴스는 하나만 있을 수 있음 이 활동의 4단계를 따릅니다. singleTask 시작 모드와 달리 이 작업은 사용자가 다른 작업의 여러 인스턴스에서 FLAG_ACTIVITY_MULTIPLE_TASK 또는 FLAG_ACTIVITY_NEW_DOCUMENT 플래그가 설정됩니다.
를 통해 개인정보처리방침을 정의할 수 있습니다.

또 다른 예로, Android 브라우저 앱은 활동은 singleTask를 지정하여 항상 자체 작업에서 열립니다. <activity>에서 실행 모드 요소가 포함됩니다. 즉, 앱이 Android 웹 기반 인터페이스를 열기 위한 인텐트를 발행하면 사용하는 경우 활동이 앱과 동일한 작업에 배치되지 않습니다. 대신 브라우저에서 새 작업이 시작되거나 브라우저에 이미 작업이 있는 경우 해당 작업이 진행되어 새로운 인텐트를 지정할 수 있습니다.

활동이 새 작업에서 시작되든 동일한 작업에서 시작되든 상관없이 동작, 뒤로 버튼과 동작은 항상 사용자를 이전 활동으로 다시 보냅니다. 그러나 지정 singleTask 시작 모드와 이 활동의 인스턴스가 백그라운드 작업이 있으면 해당 전체 작업이 포그라운드로 전환됩니다. 이 시점에서 백 스택에는 있습니다. 그림 4는 이러한 유형의 시나리오를 보여줍니다.

그림 4. 활동이 시작되는 방식을 표현 모드 "singleTask"이 백 스택에 추가됩니다. 활동이 이미 자체 백 스택이 있는 백그라운드 작업의 일부인 경우 전체 백 스택도 현재 레이어 위에 있습니다.

매니페스트 파일에서 시작 모드를 사용하는 방법에 대한 자세한 내용은 다음을 참조하세요. <activity> 요소 문서를 참조하세요.

인텐트 플래그를 사용하여 실행 모드 정의

활동을 시작할 때 활동의 기본 연결을 수정할 수 있습니다. 전송하는 인텐트에 플래그를 포함하여 startActivity() 기본 동작을 수정하는 데 사용할 수 있는 플래그는 다음과 같습니다.

FLAG_ACTIVITY_NEW_TASK

시스템이 새 작업에서 활동을 시작합니다. 포드에서 실행 중인 시작되면 해당 작업은 활동은 새로운 인텐트를 onNewIntent()

이렇게 하면 "singleTask"와 동일한 동작이 생성됩니다. launchMode 값 논의됨 설명하겠습니다

FLAG_ACTIVITY_SINGLE_TOP

시작 중인 활동이 현재 활동인 경우 뒷면 상단 기존 인스턴스가 활동의 새 인스턴스를 만드는 대신 onNewIntent()를 사용합니다.

이렇게 하면 "singleTop"와 동일한 동작이 생성됩니다. 이전 섹션에서 설명한 launchMode 값입니다.

FLAG_ACTIVITY_CLEAR_TOP

시작되고 있는 활동이 이미 현재 작업에서 실행 중인 경우 해당 액티비티의 새 인스턴스를 시작하는 대신 시스템은 그 위에 있는 다른 모든 활동을 소멸시킵니다. 의도는 액티비티의 재개된 인스턴스로 전달되며, 이제 맨 위에 onNewIntent()

이 동작을 발생시키는 launchMode 속성 값은 없습니다.

FLAG_ACTIVITY_CLEAR_TOP는 다음 항목과 함께 가장 자주 사용됩니다. FLAG_ACTIVITY_NEW_TASK입니다. 이러한 플래그를 함께 사용하면 다른 작업에서 기존 활동을 찾아 특정 위치에 배치 선택할 수 있습니다

"standard"

어피니티 처리

어피니티는 활동이 '선호하는' 작업을 나타냅니다. 선택합니다. 작성자: 기본적으로 동일한 앱의 모든 활동은 서로에게 어피니티가 있습니다. '선호하는' 있도록 하는 것입니다.

그러나 액티비티에 대한 기본 어피니티는 수정할 수 있습니다. 활동 정의됨 같은 앱에 정의된 여러 활동이 어피니티를 공유할 수 있음 서로 다른 작업 어피니티를 할당할 수 있습니다.

taskAffinity를 사용하여 활동의 어피니티를 수정할 수 있습니다. <activity>의 속성입니다. 요소가 포함됩니다.

taskAffinity 속성은 기본 패키지 이름 <manifest>에 선언됨 요소가 없습니다. 시스템은 이 이름을 사용하여 기본 작업을 식별하고 앱에 대한 어피니티입니다.

어피니티는 다음과 같은 두 가지 상황에서 작용합니다.

  1. 활동을 실행하는 인텐트에 FLAG_ACTIVITY_NEW_TASK 드림 플래그.

    기본적으로 새 활동은 호출됨 startActivity() 호출자와 동일한 백 스택으로 푸시됩니다.

    그러나 startActivity()에 전달된 인텐트에 FLAG_ACTIVITY_NEW_TASK 플래그가 지정된 경우 시스템은 새 활동을 수용할 다른 작업을 찾습니다. 보통 이것은 새로운 작업입니다. 하지만 반드시 새 작업일 필요는 없습니다. 만약 새 활동과 동일한 어피니티를 가진 기존 작업인 경우, 활동은 시작됩니다 그렇지 않으면 새 작업을 시작합니다.

    이 플래그로 인해 활동이 새 작업을 시작하고 사용자가 홈 버튼이나 동작을 종료하기 전에 사용자가 다시 시작할 수 있는 방법이 있어야 합니다. 작업으로 다시 이동합니다. 알림 관리자와 같은 일부 개체는 활동을 항상 자체 활동이 아닌 외부 작업에서 시작하므로 항상 전달되는 인텐트에 FLAG_ACTIVITY_NEW_TASK를 넣습니다. startActivity()입니다.

    만약 위험성이 있는 외부 법인이 이 플래그를 사용하면 활동을 호출할 수 있습니다. 사용자가 데이터 레이크로 돌아가 시작된 작업의 루트 액티비티(예: 런처 아이콘)에서 작업에는 CATEGORY_LAUNCHER 드림 인텐트 필터 자세한 내용은 태스크 시작 섹션을 참조하세요.

  2. 활동에 allowTaskReparenting가 있는 경우 속성을 "true"로 설정합니다.

    이 경우 활동은 자신이 시작한 작업에서 가지고 있는 작업으로 이동할 수 있습니다. 해당 작업이 포그라운드로 올 때 어피니티가 없습니다.

    예를 들어, 30분 동안 날씨를 보고하는 활동이 여행 앱의 일부로 정의됩니다 인코더-디코더는 같은 앱의 다른 활동과 마찬가지로 기본 앱 어피니티를 사용하고 이 속성으로 상위 요소로 재지정합니다.

    활동 중 하나가 일기 예보 활동이 있다면 처음에는 있습니다. 그러나 여행 앱의 작업이 포그라운드로 나오면 일기 예보 활동이 해당 작업에 재할당되어 작업 내에 표시됩니다.

를 통해 개인정보처리방침을 정의할 수 있습니다.

백 스택 삭제

사용자가 작업을 오랫동안 떠나면 시스템은 해당 작업을 모두 지웁니다. 루트 활동을 제외한 모든 활동을 제거합니다. 사용자가 작업으로 돌아오면 루트 활동만 복원됩니다. 시스템은 이전에 발생한 문제를 기반으로 인코더-디코더 아키텍처를 사용자가 하던 일을 중단한 시간이 긴 시간 작업으로 돌아가 새로운 것을 시작합니다.

이 동작을 수정하는 데 사용할 수 있는 액티비티 특성이 몇 가지 있습니다.

alwaysRetainTaskState
작업의 루트 활동에서 이 속성을 "true"로 설정하면 작동하지 않습니다. 작업은 활동을 계속할 수 있습니다.
clearTaskOnLaunch

작업의 루트 활동에서 이 속성을 "true"로 설정하면 작업은 루트 액티비티로 정리되고 사용자가 작업을 종료할 때마다 반환합니다. 즉, alwaysRetainTaskState 이 사용자가 작업을 떠난 후에도 항상 초기 상태의 작업으로 시간이 될 것입니다.

finishOnTaskLaunch

이 속성은 clearTaskOnLaunch과 같습니다. 전체 작업이 아닌 단일 활동에서 작동합니다. 또한 인간이 모든 활동이 종료되어야 합니다. 설정된 경우 "true": 활동은 현재 세션에서만 작업의 일부로 유지됩니다. 사용자가 작업을 나갔다가 다시 돌아오면 이 작업은 더 이상 존재하지 않습니다.

작업 시작

활동에 인텐트를 제공하여 작업의 진입점으로 활동을 설정할 수 있습니다. "android.intent.action.MAIN"를 지정된 작업으로 사용하여 필터링 "android.intent.category.LAUNCHER"를 지정된 카테고리로 설정합니다.

<activity ... >
    <intent-filter ... >
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
    ...
</activity>

이러한 종류의 인텐트 필터를 사용하면 활동의 아이콘과 라벨이 다음과 같이 작동합니다. 표시함으로써 사용자에게 활동을 시작하고 생성된 태스크로 돌아올 수 있습니다.

이 두 번째 능력이 중요합니다. 사용자가 할 일을 종료할 수 있어야 함 이 활동 런처를 사용하여 나중에 다시 확인할 수 있습니다. 이러한 이유로 둘 활동을 항상 작업을 시작하는 것으로 표시하는 실행 모드, "singleTask" 활동이 있을 때 "singleInstance" ACTION_MAINCATEGORY_LAUNCHER 필터를 적용합니다.

예를 들어 필터가 누락되면 어떻게 될까요? 인텐트가 "singleTask" 활동을 실행하여 새 작업을 시작하고 사용자가 해당 작업에서 작업하는 데 시간을 보냅니다. 그런 다음 사용자가 홈 버튼 또는 동작입니다. 이 작업은 이제 백그라운드로 보내져 보이지 않습니다. 이제 사용자는 작업이 앱에 표시되지 않으므로 작업으로 돌아갈 방법이 없습니다. 있습니다.

사용자가 <activity>를 설정합니다. 요소의 finishOnTaskLaunch "true"님에게 전송합니다. 자세한 내용은 백 스택 지우기 섹션을 참고하세요.

작업 및 활동의 표시 및 관리 방법에 대한 추가 정보 최근 화면을 참조하세요.

추가 리소스