룬아님의 취중코딩

2. 안드로이드 개발 레벨업 교과서 (Activity) 본문

개발/안드로이드 개발 레벨업 교과서

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
반응형
Comments