본문 바로가기

나의 플랫폼/안드로이드

[Android] android:launchMode="singleTask" 사용 시 발생하는 문제점

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
<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를 이용하여 결과를 받을 수 없다는 의미죠.

   참고 : http://jwandroid.tistory.com/124 



참고로 혹시나 App아이콘으로 항상 메인을 실행 시키고자 하시는 분은 아래 내용을 참고 하세요.


https://stackoverflow.com/a/5540250


clearTaskOnLaunch="true"


위 설정을 해주면 된다고 합니다.