Android
android:launchMode
aucd29
2013. 10. 8. 14:52
http://jameroid.tistory.com/entry/androidlaunchMode
android:launchMode – 액티비티가 어떻게 런치되어야 하는지에 대한 명령이다.
4가지 런치모드(“standard” “singleTop” “singleTask” “singleInstance” )가 있고 디폴트는 “standard”이다.
모드는 두개의 main Group으로 나뉜다(standard, singleTop / singleTask, singleInstance).
“standard”, “singleTop”모드를 가지는 액티비티는 여러 번 인스턴스화 될 수 있으나(Intent Object가 “FLAG_ACTIVITY_NEW_TASK” flag를 가지고 있지 않을 경우에 해당)
“singleInstance” 액티비티는 하나의 Task만 시작 할 수 있다.
“standard” vs “singleTop” :
“standard” 액티비티에 대한 새로운 Intent가 발생하면 언제나 해당 Class의 Instance가 만들어 지지만
“singleTop” 액티비티의 새로운 Instance는 생성 될 수도 있다.
즉, Target Task에 이미 해당 액티비티의 인스턴스가 존재하면 새로 만들어지지 않고 기존 인스턴스가 새로운 Intent를 받게 된다.
“singleTask” vs “singleInstance” :
“singleTask” 액티비티는 다른 액티비티들이 해당 Task의 일부가 되는 것을 허락하여 “singleTask” 액티비티는
액티비티 스택의 root에 존재하게 되고 다른 액티비티들은 동일한 Task에서 시작 될 수 있다.
이와 달리 “singleInstance” 액티비티는 어떤 다른 액티비티들도 해당 Task의 일부가 될 수 없다.
이로 인해 해당 Task에는 유일한 Activity만 존재하고 또 다른 Activity를 실행하려고 하면 새로운 Task로 할당이 된다.
android:launchMode – 액티비티가 어떻게 런치되어야 하는지에 대한 명령이다.
4가지 런치모드(“standard” “singleTop” “singleTask” “singleInstance” )가 있고 디폴트는 “standard”이다.
모드는 두개의 main Group으로 나뉜다(standard, singleTop / singleTask, singleInstance).
“standard”, “singleTop”모드를 가지는 액티비티는 여러 번 인스턴스화 될 수 있으나(Intent Object가 “FLAG_ACTIVITY_NEW_TASK” flag를 가지고 있지 않을 경우에 해당)
“singleInstance” 액티비티는 하나의 Task만 시작 할 수 있다.
“standard” vs “singleTop” :
“standard” 액티비티에 대한 새로운 Intent가 발생하면 언제나 해당 Class의 Instance가 만들어 지지만
“singleTop” 액티비티의 새로운 Instance는 생성 될 수도 있다.
즉, Target Task에 이미 해당 액티비티의 인스턴스가 존재하면 새로 만들어지지 않고 기존 인스턴스가 새로운 Intent를 받게 된다.
“singleTask” vs “singleInstance” :
“singleTask” 액티비티는 다른 액티비티들이 해당 Task의 일부가 되는 것을 허락하여 “singleTask” 액티비티는
액티비티 스택의 root에 존재하게 되고 다른 액티비티들은 동일한 Task에서 시작 될 수 있다.
이와 달리 “singleInstance” 액티비티는 어떤 다른 액티비티들도 해당 Task의 일부가 될 수 없다.
이로 인해 해당 Task에는 유일한 Activity만 존재하고 또 다른 Activity를 실행하려고 하면 새로운 Task로 할당이 된다.