안드로이드 앱은 모두 4개의 컴포넌트로 개발하는데 이때 핵심 클래스가 Intent이다. 인텐트는 컴포넌트를 실행하려고 시스템에 전달하는 메시지이다.
액티비티에서 다른 액티비티를 실행하며 데이터를 전달해야 할 때는 엑스트라 데이터를 이용해야 한다. 엑스트라 데이터란 인텐트에 담는 부가 정보이다.
사후 처리 여부에 따라 인텐트로 액티비티를 시작하는 방법 3가지
public void startActivity(Intent intent)
public void startActivityForResult(Intent intent, int requestCode)
ActivityResultLauncher
코드에서 특정한 순간에 키보드를 올리거나 내려야 할 수 있다. 이러한 기능은 InputMethodManager 클래스가 지원한다.
태스크 관리란 액티비티를 어떻게 생성하고 관리하는지를 제어하는 일을 의미한다. 시스템에는 액티비티의 태스크를 유지하는 기본 규칙이 있으며 일반적으로는 이 기본 규칙을 그대로 이용하므로 개발자가 태스크를 제어할 일은 많지 않다.
ANR은 액티비티가 응답하지 않는 오류 상황이다. 액티비티를 작성할 때 ANR을 고려하지 않으면 앱이 수시로 종료될 수 있다. 액티비티로 구성한 앱 화면은 사용자 이벤트에 5초 이내에 반응해야 하는데 그렇지 않으면 ANR 오류가 발생한다.