나의 플랫폼/안드로이드
[Android] android:launchMode="singleTask" 사용 시 발생하는 문제점
GsBOB
2017. 5. 26. 10:25
<activity
android:name=".ui.LauncherActivity"
android:label="@string/app_name"
android:launchMode="singleTask"
android:screenOrientation="portrait"
android:theme="@style/AppTheme_NoActionBar">
<intent-filter>
<action android:name="android.intent.action.SEARCH" />
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<meta-data
android:name="android.app.searchable"
android:resource="@xml/searchable" />
</activity>
앱 실행 시 첫 화면을 위와 같이 설정하시는 분들이 많을 꺼라 생각 됩니다.
머 다들 이해하시겠지만,
android:launchMode="singleTask"
요놈이 제법 골치꺼리 더라구요.
아마 singleTask를 화면이 Activity를 유일한 Task에 하나만 띄우기 위해서 많이 사용하시는 듯 합니다만,
위와 같이 설정 할 경우 아래와 같은 문제가 생기네요.
1. Task 목록이 아닌 App 아이콘으로 실행 시, 무조건 Main 화면이 실행 된다.
-> 즉, 기존에 Task Stack에 쌓여 있는 화면들은 무시가 되는 거죠.
2. onActivityResult가 호출이 안된다고 합니다.
-> startActivityForResult를 이용하여 결과를 받을 수 없다는 의미죠.
참고로 혹시나 App아이콘으로 항상 메인을 실행 시키고자 하시는 분은 아래 내용을 참고 하세요.
https://stackoverflow.com/a/5540250
clearTaskOnLaunch="true"
위 설정을 해주면 된다고 합니다.