dev/aos
[AOS] launchMode정리
캄춰
2023. 10. 30. 13:13
728x90
반응형
A액티비티 → B액티비티로 이동
B액티비티에서 뒤로 가기 누른 뒤 작업 창에서 다시 해당 앱을 누르면 'B액티비티'가 이어서 표출하길 원했다.
하지만, A액티비티가 표출되었고, FLAG로 조절하는 줄 알았던 나의 오랜 기억을 다시 정리한다.
'launchMode'
- standard(기본값:생략) : 기본 값이다. TASK에 새로운 액티비티 인스턴스 스택이 쌓이게 된다.
- singleTop : 맨 위에 쌓인 액티비티 인스턴스를 재사용한다. 맨 위에 쌓였던 인스턴스가 아니면 새로 생성되게 된다.
- singleTask : 액티비티가 고유한 TASK에서 실행된다. 각 TASK에 하나만 존재하게 된다.
- singleInstance : 액티비티가 고유한 TASK에서 실행된다. singleTask와의 차이점은 TASK안에 오직 자신만 존재한다.
[구현]
A액티비티 : MainActivity
B액티비티 : CalculateActivity
<activity
android:name=".CalculateActivity"
android:exported="false" />
<activity
android:name=".MainActivity"
android:launchMode="singleInstance"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
MainActivity에서 CalculateActivity를 실행한 뒤,
뒤로가기 한 후 다시 작업 창에서 해당 앱을 열면 MainActivity가 아닌 CalculateActivity가 표출된다.
728x90
반응형