개발/안드로이드 개발 레벨업 교과서
2. 안드로이드 개발 레벨업 교과서 (Activity)
룬아님
2019. 8. 16. 01:19
2019/08/07 - [개발/안드로이드 개발 레벨업 교과서] - 1. 안드로이드 개발 레벨업 교과서
Activity
액티비티의 수명주기 종류
메서드명 | 시점 | 처리 예 |
onCreate | 생성 시 | 초기화 처리와 뷰 생성(setContentView 호출) 등 |
onStart | 비표시 시 | 통신이나 센서 처리를 시작 |
onRestart | 표시 시(재시작만) | 보통은 아무것도 하지 않아도 된다. |
onResume | 최전면 표시 | 필요한 애니메이션 실행 등의 화면 갱신 처리 |
onPause | 일부 표시(일시정지) 상태 | 애니메이션 등 화면 갱신 처리를 정지 또는 일시정지할 때 필요 없는 리소스를 해제하거나 필요한 데이터를 영속화 |
onStop | 비표시(정지) 상태 | 통신이나 센서 처리를 정리 |
onDestroy | 폐기 시 | 필요 없는 리소스를 해제. 액티비티 참조는 모두 정리한다. |
액티비티 launchMode의 종류
launchMode | 내용 |
standard | 매번 액티비티의 인스턴스를 새로 생성한다. 기본값이다. |
singleTop | 같은 액티비티가 최상위에서 실행 중이면 액티비티를 생성하지 않고, 그 대신 최상위 인스턴스의 onNewIntent()를 호출한다. |
singleTask | 1개의 태스크에 인스턴스가 존재한다. 이미 같은 액티비티가 실행 중이면 액티비티를 생성하지 않는다. |
singleInstance | 1개의 태스크에 1개의 인스턴스만 존재한다. 다른 액티비티를 태스크에 포함하지 않는다. 이미 같은 액티비티가 실행 중이면 액티비티를 생성하지 않는다. |
taskAffinity
taskAffinity는 '태스크 이름'으로 알아두면 좋다.
taskAffinity가 지정되지 않은 경우는 자기 앱의 패키지 이름이 태스크 이름이 된다. taskAffinity를 설정하지 않으면 그 앱의 태스크 이름은 모두 같아진다.
<activity android:name=".Main" ...>
<activity android:name=".Activity1" ...>
<activity android:name=".Activity2"
android:taskAffinity=":something" ...>
adb로 백스택 확인하기
$adb shell dumpsys activity activities
반응형