안드로이드 공식 문서
안드로이드 4대 컴포넌트
- 면접 단골 질문!!!!!
- Activity
- Service : 백그라운드에서 무언가를 하기 위해 하는 것
- Broadcast Receiver
- Content Provider
- 오목 때 진입 점은 main이였다. 안드로이드 컴포넌트에서는 main을 사용하지 않음.
Activity의 역할
- UI 노출 및 데이터 로드
- 사용자의 이벤트(버튼 터치, 텍스트 입력 등) 처리
- 새로운 Activity 시작
- super.onCreate 전에 setContentView 실행 X
intent
- 앱의 구성 요소, 다른 앱의 구성 요소에게 데이터를 넘겨주거나 사용할 때 사용
intent-filter
명시적 인텐트
암시적 인텐트
Context
Application Context vs Activity Context
- Application이 꺼지기 전까진 Activity에 접근 가능
- Activity가 Application에 종속됨
- Application에서 사용할 수 없는 기능도 있음(ex> dialog 기능)
- 그 구성요소에 사용할 수 있는 것으로 골라서 사용하면 됨
- context를 적재적소에 사용하려면 많은 노력이 필요!!!!!!!
나쁜 예시
- activity context를 전역으로 사용하는 경우
- Application Context를 Activity에서 무분별하게 사용
- Application을 참조하고 있어 정상적으로 종료되지 않음. 얽혀있음
- 직접 context 객체 생성
Activity LifeCycle
- Fragment와 View LifeCycle도 중요!!! 면접 단골 질문!
필요한 이유
- 사용자가 이용중인 앱을 백그라운드로 전환했다가 다시 재개할 때마다 앱의 데이터를 초기화해야 하는 요구사항 => onResume() 쓰기
- 이런 요구사항이 있을 떄 시스템에서 만들어준 LifeCycle 함수를 override하면 쉽게 구현 가능