Android 활동의 시작 모드
중요한 용어
시작 모드로 이동하기 전에 몇 가지 중요한 용어가 있습니다.
일
작업은 활동의 모음입니다. 애플리케이션은 하나 또는 여러 개의 작업을 가질 수 있습니다. 애플리케이션 실행 시 새 작업이 생성되고 실행기 활동이 작업의 루트가 됩니다. 새 작업 생성은 이 문서의 뒷부분에서 볼 시작 모드에 따라 다릅니다.
백 스택
스택 데이터 구조에서 활동을 유지하는 것을 백 스택이라고 합니다. 활동은 사용자 작업 및 시작 모드에 따라 스택으로 푸시되고 스택에서 팝될 수 있습니다.
실행 모드
시작 모드에는 네 가지 유형이 있습니다.
그들 각각을 이해합시다.
1. 기준
시작 모드를 지정하지 않으면
standard
가 기본 모드입니다. 활동을 시작할 때마다 활동의 새 인스턴스를 생성합니다. A, B, C, D 등이 활동이라고 가정합니다. 다음과 같이 작동합니다.활동이 있는 작업:
A -> B -> C -> D
새 활동 시작 E:
A -> B -> C -> D -> E
활동 B를 다시 시작합니다.
A -> B -> C -> D -> E -> B
2. 싱글 탑
이 시작 모드에서 활동이 작업의 맨 위에 있고 해당 인스턴스를 다시 생성하면 새 인스턴스가 생성되지 않습니다. 대신
onNewIntent()
가 업데이트된 데이터로 호출됩니다. 활동이 맨 위에 없으면 새 인스턴스가 푸시됩니다. 예를 들어보십시오:활동이 있는 작업:
A -> B -> C -> D
Activity B를 시작합니다. B가 맨 위에 있지 않으므로 새 인스턴스가 생성됩니다.
A -> B -> C -> D -> B
활동 B를 다시 시작하십시오. B가 맨 위에 있으므로 B의
onNewIntent()
가 호출됩니다.A -> B -> C -> D -> B
3. 단일 작업
이 시작 모드에서 작업에 활동이 없으면 새 인스턴스가 생성되고 그렇지 않으면
onNewIntent()
이 호출됩니다. 또한 그 위의 활동은 파괴됩니다. 예를 들어 이해해 봅시다.활동이 있는 작업:
A -> B -> C -> D
시작 모드 단일 작업으로 활동 E 시작:
A -> B -> C -> D -> E
시작 모드 단일 작업으로 활동 B 시작:
A -> B
이제 B가 이미 거기에 있음을 알 수 있습니다. 따라서 새 인스턴스가 생성되지 않습니다. B의
onNewIntent()
라고 합니다. 또한 B 위에 있는 C, D, E도 파괴되었습니다.4. 단일 인스턴스
단일 인스턴스 시작 모드가 있는 활동의 경우 새 작업이 생성됩니다. 먼저 예를 본 다음 설명할 수 있습니다.
활동이 있는 작업:
A -> B -> C -> D
시작 모드 단일 인스턴스로 E 시작:
Task-1: A -> B -> C -> D
Task-2: E
E를 다시 시작하면 새 작업이 생성되지 않습니다. 동일한 E 인스턴스에서
onNewIntent()
메서드가 호출됩니다.시작 모드를 추가하는 방법
시작 모드는 다음과 같이
AndroidManifest.xml
에서 설정할 수 있습니다.<activity android:name=”.MainActivity”
android:launchMode=”singleTop” />
또는 다음과 같은 플래그를 사용하는 Java/Kotlin 코드:
val intent = Intent(activity, HomeGenericActivity::class.java).apply {
addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP)
}
보세요, 아주 쉽습니다!!! 😁😁😁 이 글을 재미있게 읽으셨기를 바랍니다.
Reference
이 문제에 관하여(Android 활동의 시작 모드), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/mohitrajput987/launch-modes-of-android-activity-59eo텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)