1.Activity 기본
Activity란 화면에 나타나는 UI의 가장 기본이 되는 요소입니다.
전화를 선택하면 다이얼화면이 나타나고 통화버튼을 누르면 수신중인 화면이 나타나듯 보통의 앱을 보면 여러개의 Activity가 모여 UI를 구성합니다.
앱을 실행하면 지정한 하나의 메인Activity가 나타나고 모든 Activity들은 인텐트(Intent)를 통해 다른Activity들을 실행할 수 있습니다.
다음 예제를 통해 Activity를 알아 봅시다.
2.Activity 시작
처음 프로젝트를 생성할 때 "MainActivity"가 자동으로 생성되며 AndroidManifest에서 앱 실행시 첫화면을 지정할 수 있습니다. MainActivity는 앱 실행시 처음으로 나타나는 Activity로 꼭 이 Activity이어야 하지도, 이름이 MainActivity일 필요도 없습니다. AndroidManifest 파일은 App의 기본정보를 가진 파일입니다. 원하는 Activity를 생성하여 AndroidManifest파일에서 빨간상자를 넣어주기만 하면 메인Activity가 됩니다.
2.1 Activity 생성
패키지에 마우스 우클릭으로 빈Activity A와 B를 생성하여 줍시다.
다음과 같이 생성하였다면 A Activity와 연결된 activity_a.xml 파일이 동시에 생성됩니다.
Activity는 직접 UI를 그리지 않습니다.
XML파일에서 view와 viewgroup간 속성과 배치관계 등 디자인적인 요소만을 담고 activity가 이를 구현해줍니다.
Activity에서 setContentView() 함수를 통해 화면에 표시할 xml 혹은 view클래스를 지정할 수 있습니다.
R.layout은 activity_a가 있는 디렉토리 경로(/res/layout)를 나타내고 activity_a는 xml파일인 activity_a.xml을 의미합니다
클래스A는 AppCompatActivity를 상속받고 메소드인 onCreate()를 오버라이드(기능을 가져온것)하였습니다.
onCreate()는 Activity가 생성될 때 가장 먼저 호출되는 메서드 입니다.
Activity는 생성부터 파괴까지 몇단계의 생애주기(Life-Cycle)을 가지는데 Activity가 생성되자 마자 activity_a를 화면에 표시하겠다는 뜻입니다. Activity 생애주기의 자세한 내용은 다음을 참고하세요 (...)
현재Activity에서 다른 Activity로 넘어가려면 startActivity()에 Intent(의도)를 담아 호출해야합니다.
1
2
|
Intent intent= new Intent(this, B.class);
startActivity(intent);
|
cs |
위의 코드는 액티비티a에서 액티비티b로 넘어가기위해 startActivity()로 B클래스를 명시적으로 호출한 코드입니다.
우리가 호출 하고자 하는 액티비티를 정확히 알고 있어서 B.class로 정확히 명시했지만 대상이 정확하지 않을 때도 있습니다.
그럴 땐 시스템에 불러오고자 하는 액티비티의 유형을 적어주면 됩니다.
아래의 코드는 이메일 액티비티를 특정하지 않고 암묵적으로 액티비티를 호출한 코드입니다.
1
2
|
Intent intent= new Intent(Intent.ACTION_SEND);
startActivity(intent);
|
cs |
Intent (..)
2.2 Activity 종료
사용이 끝난 Activity는 finish()함수를 호출하여 종료할 수 있습니다.
이전에 실행됐던 Acitivity를 종료할 때는 finishActivity()를 이용할 수 있습니다.
2.3 Activity 관리
App은 하나의 Activity일수도 여러개일 수도 있습니다. Activity가 하나라면 하나의 화면에서 내용을 갱신하겠지만, Activity가 여러개일 경우엔 Stack자료구조처럼 후입선출(LIFO,Last-In First-Out)의 형태로 관리됩니다
새로운 Activity가 호출될 경우 기존에 실행중이던 Acitvity는 백스택(Back-Stack)에 저장되고 새로운 Activity가 나오게 됩니다.
다음의 그림을 참고해 주세요
요약
App의 화면은 화면구성을 정의한 xml파일과 동작을 정의한 Activity로 구성되어 있다.
기본화면(메인 액티비티)에서 다른 화면으로 넘어갈 때에는 Intent를 이용해 넘어갈 수있다.
새로운 화면이 나타나면 기존의 화면은 Back-Stack에 LIFO형태로 저장되어 관리된다
'Android프로그래밍 > Activity' 카테고리의 다른 글
안드로이드 액티비티 생애주기 / Android LifeCycle (0) | 2020.12.25 |
---|
댓글