Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

Yunster's 개인 공부 공간

4. 액티비티 살펴보기 본문

안드로이드-나의 첫 안드로이드

4. 액티비티 살펴보기

yunster 2019. 3. 6. 16:55

1. 액티비티 개요

- 액티비티는 앱을 실행했을 때 보여지는 화면을 구성할 수 있도록 하는 안드로이드 구성 요소 중 하나.

- 일반적으로 액티비티는 화면을 가득 채우지만, Dialog 처럼 작은 형태로 만들어서 다른 액티비티 위에 띄울 수도 있다.

- 액티비티에서 다른 액티비티를 실행할 수도 있으며, 현재 액티비티를 종료할 수도 있다.

- 액티비티는 기본적으로 다양한 상태를 가질 수 있으며, 이 상태에 따라 액티비티의 특정 메소드가 호출된다 : 생명주기 메소드

- Activity, FragmentActivity, AppCompatActivity 등 모든 클래스가 액티비티 클래스를 의미하며, 안드로이드 스튜디오에서 프로젝트를 생성하면 기본적으로 AppCompatActivity 클래스를 상속한 MainActivity 클래스가 생성된다.

- 액티비티 생명 주기 단계는 [생성>실행>종료] 이렇게 나뉘어지고, 흔히 볼 수 있는 onCreate() 메소드는 생성 단계로 액티비티를 생성하기 위해 호출되는 메소드입니다.


2. 액티비티 생성

- 우리가 액티비티를 직접 생성할 수는 없다. 단지 생성 요청을 보내고 액티비티가 생성될 때 호출되는 생명주기 메소드에 필요한 코드를 작성하여 코드를 실행되도록 하는 것이 전부이다.

- 액티비티가 생성될 때 어떤 동작을 하고 싶으면 onCreate() 메소드 안에 코드를 작성하면 된다.

- 액티비티가 화면에 보이지 않을 때 처리하고 싶은 코드가 있으면 onPause() 메소드 안에 코드를 작성하면 된다.


3. 액티비티 실행

- 액티비티가 실행되면 사용자에게 보여지고, 사용자는 액티비티에 보이는 버튼을 누르거나 EditText에 입력을 하는 등의 활동을 할 수 있다.

- 그러다가 전화가 오거나 홈 버튼을 눌러 빠져나가면 현재 액티비티는 일시중지 상태가 된다. 다시 액티비티로 들어오면 실행 상태가 된다.

- 사용자가 버튼을 누르는 등 특정 작업을 했을 때 다른 액티비티를 실행하기 위해서는 startActivity() 메소드를 사용해야 한다.

- 아래는 startActivity 메소드를 사용하여 다른 액티비티를 실행하는 코드이다.

Intent intent = new Intent(getApplicationContext(), NewActivity.class);
startActivity(intent);


4. 액티비티 종료

- 액티비티를 종료하고 싶다면 finish() 메소드를 호출해야 한다.

- 만약 현재 액티비티가 아닌 다른 액티비티를 종료하고 싶다면 finishActivity() 메소드를 호출하면 된다.(다만 이 경우는 startActivityForResult() 메소드에 의해 실행된 액티비티를 종료하는 용도이므로 지금은 그냥 이런게 있다 정도만 생각하길 바람)

- 아래는 버튼 클릭 시 액티비티를 종료하는 코드이다.

btnSubmit.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View view) {
finish();
}
});


5. 액티비티 상태

- 액티비티는 크게 세 가지 상태로 구분 가능하다 : [실행], [일시정지], [중지]

- 실행(Resumed) : 액티비티가 화면에 보여지며 사용자가 사용할 수 있는 상태

- 일시정지(Paused) : 액티비티가 다른 액티비티에 의해 숨겨져 있는 상태

- 중지(Stopped) : 액티비티가 보이지 않으면서 중지된 상태


6. 액티비티 생명주기


- 액티비티가 시작되면 onCreate(), onStart(), onResume() 메소드가 연속으로 호출되면서 액티비티가 화면에 나타난다.

- 사용자가 홈 버튼을 누르거나 다른 액티비티를 실행할 경우 onPause() 메소드가 호출된다.

- 예를 들어 액티비티를 실행한 상태에서 사용자가 전화를 받으면 onPause() 메소드가 호출되고, 다시 전화를 끊으면 onResume() 메소드가 호출된다.



[출처] 한동호, '나의 첫 안드로이드 : 처음 시작하는 개발자를 위한', 한빛미디어, 2018

Comments