Mobile/android2012. 8. 30. 15:33

Intent 의 setFlags




FLAG_ACTIVITY_SINGLE_TOP


A, B의 Activity가 있을 경우 A Activity는 B Activity를 호출하고, B Activity는 다시 자기 자신의

Activity를 호출할때 호출하는 B Activity가 이미 Task앞에 위치하고 있을 경우  재활용됩니다.

동일한 Activity를 여러번 생성하는 것은 메모리 사용량, Activity 시작속도에 악영향을 미칩니다.

이런 경우  FLAG_ACTIVITY_SINGEL_TOP을 적절하게 활용하면 됩니다.



FLAG_ACTIVITY_NO_HISTORY 


A, B의 Activity가 있을 경우 A Activity는 B Activity를 호출하고, B Activity는 다시 A Activity를 

호출하고 Back버튼을 눌렀을 경우입니다.

FLAG_ACTIVITY_NO_HISTORY로 설정된 Intent로 시작된 B Activity는 흔적을 남기지 않게 됩니다.

특정한 이벤트에 대한 알람등을 위해 다이얼로그 형태로 화면에 표시되는 Activity에 적용할때 활용



FLAG_ACTIVITY_REORDER_TO_FRONT


A, B의 Activity가 있을 경우 A Activity는 B Activity를 호출하고, B Activity는 A Activity를 호출할때

어떤 Activity에서 특정 Activity로 점프하는 형식의 Flow를 구성해야 하는 경우 요긴하게 사용

Task의 순서를 뒤 썪는 다는 점에서 사용에 주의해야 합니다.



FLAG_ACTIVITY_CLEAR_TOP


A, B의 Activity가 있을 경우 A Activity는 B Activity를 호출하고, B Activity는 A Activity를 호출할때

B Activity가 종료되고 A Activity만 남게 됩니다. 

특정 어플리케이션 대쉬보드나 Activity를 호출시 유용하게 사용됩니다.

주의할점 A -> B -> A 형태로 Activity를 호출할때 CLEAR_TOP만 사용하게 되면 기존 생성되었던

A Activity가 종료(onDestroy())된 후 새롭게 A(onCreate())가 생성됩니다

기존에 A Activity가 계속 사용되기를 원한다면 SINGLE_TOP FLAG와 함께 사용해야합니다.



FLAG_ACTIVITY_NEW_TASK


TASK란 사용자가 특정한 목적을 이루기 위해 따르게 되는 Activity들의 집합이다

실행 시킬려고 하는 Activity가 이미 작동중이 Task가 있다면 해당 Task에.

그렇지 않다면 아예 새로운 Task에 Activity를 위치시키면 됩니다.


참조

[http://webcache.googleusercontent.com/search?q=cache:j3QHoRE6UXkJ:blog.naver.com/PostView.nhn%3FblogId%3Dhuewu%26logNo%3D110084868855+FLAG_ACTIVITY_NEW_TASK&cd=1&hl=ko&ct=clnk&gl=kr]

[http://surprisen.egloos.com/2511530]


'Mobile > android' 카테고리의 다른 글

내 전화번호 보기  (0) 2012.09.16
My Application  (0) 2012.09.13
Context  (0) 2012.08.30
AsyncTask  (0) 2012.08.29
Android Api 주소  (0) 2012.08.29
Posted by NeverTry