레이아웃 인플레이션
안드로이드에서는 화면을 구성하는 방법으로 XML레이아웃을 사용한다.
이 XML레이아웃 파일의 내용은 어플리케이션이 실행될 때 메모리로 로딩되어 객체화 되는데
이때 메모리 상에 객체화되는 과정을 인플레이션(inflation)이라고한다.
안드로이드 어플리케이션의 4가지 구성요소(Component)
- 액티비티(Activity)
: 화면을 구성하는 가장 기본적인 컴포넌트로, 일반적으로 하나의 화면으로 생각할 수 있다.
- 서비스 (Service)
: 눈에 보이는 화면과 상관없이 백그라운드에서 동작하는 컴포넌트
- 브로드캐스트 리시버(Broadcast Receiver)
: 안드로이드는 여러 응용 프로그램이나 장치에 메시지를 전달하기 위해 방송 메시지를 사용한다.
브로드캐스트 리시버는 이러한 방송메시지가 발생하면 반응한다.
- 콘텐트 프로바이더(Content Provider)
: 응용 프로그램 사이에 데이터를 공유하기 위한 컴포넌트
안드로이드 응용 프로그램은 데이터에 자신만 접근할 수 있으므로 자신의 데이터를 외부에 공개하려면 콘텐트 프로바이더를 만들어야한다.
액티비티와 인텐트
액티비티(Activity)
새로운 액티비티를 만들어 애플리케이션에 추가한다면 AndroidManifest파일에 액티비티 정보를 추가해야한다.
- Activity의 새 인스턴스를 시작하려면 Intent를 startActivity()로 전달하면 됩니다. Intent는 시작할 액티비티를 설명하고 모든 필수 데이터를 담는다.
- 액티비티가 완료되었을 때 결과를 수신하려면(양방향으로 데이터를 전달), startActivityForResult()를 호출한다.
인텐트(Intent)
1. 명시적 인텐트
public void onClick(View v){
Intent intent = new Intent(getApplicationContext(),SecondActivity.class);
startActivity(intent);
}
Intent()생성자의 두번째 파라미터에서 명확하게 액티비티의 이름을 지정했기 때문에 명시적 인텐트가 된다.
2. 암시적 인텐트
public void onClick(View v) {
Uri uri = Uri.parse("tel:010-1000-1000");
Intent intent = new Intent(Intent.ACTION_DIAL,uri);
startActivity(intent);
}
약속된 액션을 지정하여 안드로이드에서 제공하는 기존 응용 프로그램을 실행하는 것이다.
AndroidManifest에 권한을 추가해야한다.
수명주기(life cycle)
활동 수명 주기 단계 간에 전환하기 위해 활동 클래스는 6가지 콜백으로 구성된 핵심 집합의onCreate(), onStart(), onResume(), onPause(), onStop(), onDestroy()를 제공한다.
- 활동이 새로운 상태에 들어가면 시스템은 각 콜백을 호출한다.
- 응용프로그램이 시작되면 onCreate(), onStart(), onResume() 메소드가 수행되고 메인 액티비티화면이 나온다. (메인 액티비티 실행상태)
- 메인액티비티가 끝나면 onPause(), onStop()이 수행되고 어플이 아예 종료되면 onDestroy()가 수행된다.
- 다른 액티비티가 요청되면 onPause(), onStop()메소드가 수행된고 다른 액티비티 화면이 나온다. 그 액티비티가 종료되면 onRestart(), onStart(), onResume()이 수행되고 다시 메인 액티비티 화면이 나온다.
각 상태 설명
onCreate()
: 시스템이 먼저 활동을 생성할 때 실행되는 것. '생성됨'상태가 된다.
onStart()
: 활동이 사용자에게 표시되고, 앱은 활동을 포그라운드에 보내 상호작용할 수 있도록 준비한다.
onResume()
: 앱이 사용자와 상호작용한다. 어떤 이벤트가 발생하여 앱에서 포커스가 떠날 때까지 앱이 이 상태에 머무른다.
onPause()
: 시스템은 사용자가 활동을 떠나는 것을 나타내는 첫 번째 신호로 이 메서드를 호출한다(단 소멸되는 것이 아님)
잠시 후 다시 시작할 작업을 일시중지하거나 조정한다.
onStop()
: 활동이 사용자에게 더 이상 표시되지 않으면 '중단됨' 상태에 들어간다.
Activity 객체는 메모리 안에 머무르게 된다.
onDestroy()
: 활동이 종료되는 경우
'안드로이드' 카테고리의 다른 글
자바와 코틀린 (0) | 2021.01.06 |
---|---|
안드로이드_프래그먼트 (1) | 2021.01.05 |
안드로이드_레이아웃 (0) | 2020.12.29 |
데이터 파싱 ? (1) | 2020.05.13 |
안드로이드 NestedScrollView (0) | 2020.05.07 |