병갈이 블록

Task 정리(추후 업데이트) 본문

IT(Old)/Android Studio

Task 정리(추후 업데이트)

woojang 2017. 12. 4. 00:53

Task 친화력 설정.

AndroidManifest 에서 친화력 이름 적용.

- android:taskAffinity="친화력 이름"


Activity에서 Intent Flag설정

- intent.setFlags()

- Intent.FLAG_ACTIVITY_NEW_TASK : 설정한 친화력 이름이 있으면 그곳에서, 없으면 새로 만들어서 실행.

- Intent.FLAG_ACTIVITY_MULTIPLE_TASK : FLAG_ACTIVITY_NEW_TASK와 함께쓰는 보조 플래그. 

무조건 새로운 태스크를 만든다.(주의해서 사용)


엑티비티 실행모드.

AndroidManifest 에서 엑티비티 설정. >> 실행되는 엑티비티 자체에서 스스로의 동작방식을 결정.

- android:launchMode 

= standard : Task 내에 중복으로 엑티비티 허용.(A엑티비티 여러번 실행시 여러개의 A엑티비티가 생성)

= singleTop : Task 내에 중복 엑티비티는 재사용.(하나의 엑티비티는 오직 하나만.)

단, 새로운 값으로 엑티비티를 열기 위해서는 onNewIntent()함수를 재 정의해야된다.

ex) A(singleTop) - B - C - A => B - C - A

= singleTask : 이 엑티비티를 기준으로 이후에 쌓인 엑티비티를 모두 종료하고 이 엑티비티를 재사용.

ex) A - B(singleTask) - C - B    =>    A - B (C 삭제)

= singleInstance : 모든 Task를 대상으로 중복허용 안함. 그리고 설정된 엑티비만 별도의 Task를 생성하고 그곳에 위치함.

- android:noHistory = true 설정 시 Task에 엑티비티를 쌓지 않음.(즉, 일회용 엑티비티라는 뜻.

- android:finishOnCloseSystemDialogs = true 설정 시 각종 시스템 다이얼로그 동작 시 해당 엑티비티 종료.


Activity에서 Intent에 플래그를 추가. >> 실행되는 엑티비티에서 실행 될 엑티비티의 동작방식을 결정.

- intent.setFlags() 

- Intent.FLAG_ACTIVITY_SINGLE_TOP : android:launchMode="singleTop" 과 동일한 동작.

- Intent.FLAG_ACTIVITY_NO_HISTORY : android:noHistory="true" 와 동일한 동작.

- Intent.FLAG_ACTIVITY_CLEAR_TASK : 실행할 엑티비티를 제외한 모든 엑티비티를 Task에서 삭제.

- Intent.FLAG_ACTIVITY_CLEAR_TOP

동일한 엑티비티가 존재할 경우 해당 엑티비티부터 상위 엑티비티까지 삭제 후 엑티비티 재실행.

Intent.FLAG_ACTIVITY_SINGLE_TOP 플래그와 함께 사용한다. 

(실행할 엑티비티를 종료하지 않고 재사용 할 수 있다. 단, onNewIntent()함수 재정의 필요)

- Intent.FLAG_ACTIVITY_REORDER_TO_FRONT : 실행할 엑티비티가 존재할 경우 최상위로 위치를 바꾼 뒤 재사용. 

(사용자의 혼란 야기. 사용시 주의. 그리고 singleTop과의 차이점 알아내기.)

- Intent.FLAG_ACTIVITY_TASK_ON_HOME : 실행할 엑티비티가 속한 테스크 바로 뒤로 Home 테스크를 옮겨온다. 즉, 테스크의 순서를 바꿈.

- Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED : 음...이건 어디서 설정해야하나...추후에 ...



'IT(Old) > Android Studio' 카테고리의 다른 글

Stream 정리.(계속 업데이트 예정)  (0) 2017.12.02
BroadcastReceiver() 구현.  (0) 2017.11.28
OnItemClickListener() 사용  (0) 2017.11.28
Comments