본문 바로가기
안드로이드

Activity

by Beijing_KingGod 2020. 3. 31.

activity : ui를 담당하는 제일 큰 단위 ( 화면의 기본단위)

 

안드로이드 API내에서 클래스로 제공되어 이를 상속받아 앱에서 사용할 Activity를 만들게 된다.

 

이 activity 는 개발자가 직접 인스턴스를 생성해 만드는 것이 아니라

시스템에 의해 생성되어 로드되거나 액티비티를 시작하는 StartActivity 함수에 의해 간접적으로 띄울 수 있다.

 

이는 activity의 시작과 종료를 안드로이드 시스템이 직접 관리하고 있기 때문이다.

 

 

activity lifecycle

먼저 엑티비티가 실행되면 oncreate() -> onStart() -> onResume() 함수가 차례로 시작된다.

 

onCreate() -> activity 생성시 단 한번만 호출

               -> 공동적으로 사용되는 변수의 초기화 

               -> 화면에 표시되는 ui의 초기값 설정 시 사용.

 

onStart() 와 onResume()  -> 처음 시작할때 뿐만아니라 activity가 가려졌다 돌아올 때도 실행된다.

 

이 가려지는 경우는 2가지가 있다. 

1) 화면의 일부가 가려지는 경우 ->onPause()

2) 다른 activity로 완전히 전환되는 경우 -> onPause() -> onStop()

 

이렇게 가려지고 다시 원래의 activity로 돌아올때 onStart() 나 onResume() 함수가 다시 실행된다.

 

따라서 onStart() 나 onResume() 함수에는  다른화면에서 입력받은 내용을 통해 바뀔수 있는 데이터를 초기값 설정 또는 갱신하는 것이 좋다. ex) 다이얼로그, 입력화면 등)

 

onPause() 와 onStop() 상태에서는 시스템이 메모리나 배터리의 사용량을 줄이기 위해서 activity를 메모리에서 완전히 제거하기도 한다.

이때는 activity로 돌아오더라도 다시 onCreate() 부터 시작하게 된다.

 

그리고 개발자가 명시적으로 activity를 종료하기위해 activity의 finish() 함수를 호출하거나 시스템에 의해 강제적으로 activity가 종료되는 경우 onDestroy() 함수가 호출된다.

 

 

 

 

 

launche activity -> 앱이 실행될때 첫화면으로 뜨는 activity를 설정하는 기능이다.

 

 

AppCompatActivity() : 버전별로 기능이 호환되도록 만들어진 activity class

->엑티비티가 안드로이드가 제공하는 activity 클래스를 상속받아 만들어진다는 것을 볼수 잇다.

 

onCreate() 함수가 오버라이드 되어 구현되어있는것을 볼수있다.

 

setContentView(R.layout.activity_main) -> activity_main.xml 이 내부적으로 R.layout.activity_main 상수로 자동매칭된다.

-> activity_main.xml 를 불러 화면에 출력해주는 구문이다.

 

'안드로이드' 카테고리의 다른 글

layout  (0) 2020.03.31
view  (0) 2020.03.31
안드로이드 스튜디오 기본 지식  (0) 2020.03.31
안드로이드 서버에서 문서불러오기  (0) 2019.02.02
안드로이드 php로 mysql 서버 연동하기  (0) 2019.02.02

댓글