본문 바로가기
컴퓨터 공학/Android

네이버 부스트코스 안드로이드 프로그래밍 프로젝트3) 1화면전환~3수명주기 개념 연습문제

by hahehohoo 2020. 5. 28.
반응형

네이버 부스트코스 안드로이드 프로그래밍을 수강하고 있습니다. 

강의보며 예제를 따라하고 있으나 코드가 이해되지 않아 개념을 익히기 위해 셀프체크지를 만들었습니다. 

 

아래 문제는 정재곤 선생님의 부스트코스 안드로이드 프로그래밍 강좌에 나오는 내용 정리를 참고하였습니다. 

www.edwith.org/boostcourse-android/joinLectures/13160

 

[부스트코스] 안드로이드 프로그래밍 강좌소개 : edwith

- 부스트코스

www.edwith.org

필요하신 분은 출력해서 사용하세요.

문제 2페이지, 답 1페이지 (총3장)

범위: 프로젝트 3) 1 화면전환 ~ 3 수명주기

 

안드로이드_3화면 여러 개 만들기1.pdf
0.08MB


 

 

 

 


[부스트코스] 안드로이드 프로그래밍 

3 화면 여려 만들기

3_1 화면 전환하기

  1. 안드로이드 애플리케이션 구성요소 4가지는 무엇인가?
  2. 위 클래스(애플리케이션 구성요소)들은 어디서 제공하는가
  3. 왜 애플리케이션 구성요소를 따로 분류해서 부르는가?
  4. 구성요소가 추가되었을 때 ________ 파일에 넣어두면 앱이 설치될 때 ____이 구성요소를 확인할 수 있다. 

 

< 액티비티 실행하기>

  1. 프로젝트에 새로운 액티비티가 추가되면 ______파일에 _______태그가 자동으로 추가된다. 
  2. 새로운 액티비티를 화면에 보여줄 때. startActivity나 startActivityForResult 메서드를 사용할 수 있는데 ____ 객체를 파라미터로 전달해야 한다. 
  3. 인텐트 객체를 만들 때 전달해야할 파라미터는?
  4. MenuActivity를 띄울 인텐트 객체를 만들고 실행시키는 코드를 작성하고, 분석하시오.
  5. startActivityForResult 메소드를 호출하면 인텐트 객체가 시스템으로 전달되는데 구체적으로 _______에게 전달됩니다.
  6. 요점: 액티비티는 ___를 통해 실행된다. 

 

< 액티비티 전환하기>

  1. 새 액티비티에서 전 액티비티로 돌아가고 싶으면 ____ 메서드만 호출하면 된다. 
  2. 앱에서 실행되는 액티비티는 _________에서 ____형태로 관리되기 때문에 새로 띄운 화면을 없애주면 이전 화면이 다시 보이게 됩니다. 

3_2 인텐트 살펴보기

3_2.1 인텐트

  1. 인텐트는 어떤 객체라고 할 수 있는가?
  2. 화면이 없는 서비스에서 액티비티를 실행하면 사용자 이미 보고 있는 액티비티 위에 액티비티를 실행하게 되는 경우가 된다. 결국 동일한 액티비티가 만들어지고 가장 위에 있는 것만 보여지게 된다. 이런 경우 _____를 사용하면 화면에 보이는 액티비티를 실행하더라도 그대로 사용할 수 있게 할 수 있다. 
  3. 위 경우처럼 이미 화면에 보이는 액티비티를 메모리에 새로 만들지 않고 그대로 사용할 수 있게 하는 플래그는 _________이다. 
  4. 이미 만들어져 있는 액티비티를 사용한다면 ________가 호출되지 않는다. 이유는?
  5. 대신 어떤 메서드가 호출되는가? 이유는?
  6. onCreate가 호출되는 경우에는 그 안에서 _____메소드를 이용해 전달받은 인텐트 객체를 확인할 수 있지만 onCreate 메소드가 호출되지 않는 경우에는 ______ 메소드 안에서 인텐트 객체를 확인할 수 있도록 합니다.

 

3_2.2 부가데이터

  1. 플래그란?
  2. 플래그는 인텐트 객체의 _____ 메소드를 이용해 설정할 수 있다. 
  3. Intent.FLAG_ACTIVITY_SINGLE_TOP의 역할은?
  4. Intent.FLAG_ACTIVITY_NEW_TASK의 역할은? 보통 어떤 경우에 사용될까?
  5. Intent.FLAG_ACTIVITY_CLEAR_TOP 플래그는 원하는 액티비티가 이미 메모리에 만들어져 있고 그 이후에 다른 액티비티가 만들어진 경우 _______를 찾아 다시 띄울 때 그 이후에 만들어진 다른 액티비티들은 ______역할을 합니다.
  6. 부가 데이터는 시스템에서 건드리지 않고 전달만 되며 인텐트 안에 ____ 객체가 들어가 있다. 
  7. Serializable 객체는 왜 필요한가?
  8. Serializable 객체보다 좀 더 메모리 용량을 적게 차지하는 객체 있는가?

 

3_3 생명주기 이해하기

  1. 액티비티는 시스템에서 관리되기 때문에 언제라도 중지되거나 ___에서 삭제될 수 있다. 
  2. 수명주기는 화면의 상태에 따라 달라지며 각각의 상태에 따라 자동으로 호출되는 ____가 다릅니다. 
  3. 각 상태에 호출되는 메소드를 적으시오.  

 

 

  1. 수명주기 메서드가 자동 호출되는록 만든 이유는?
  2. 화면이 눈에서 보이지 않게 될 때 호출 메서드와 화면이 다시 보일 때 호출되는 메서드는?

3_1 화면 전환하기

  1. 액티비티, 서비스, 브로드캐스트 수신자, 내용 제공자
  2. 안드로이드 SDK
  3. 시스템에서 다루기 때문
  4. 매니페스트, 시스템
  5. 매니페스트, <activity>
  6. 인텐트
  7. 컨텍스트 객체, 화면에 띄울 액티비티의 클래스 인스턴스

8. Intent intent = new Intent(getApplicationContext(), MenuActivity.class);

startActivityForResult(intent, 101); 

컨텍스트는 getApplicationContext 메소드를 호출하면 반환받을 수 있으며 화면에 띄울 액티비티의 클래스 인스턴스는 액티비티의 이름 뒤에 점(.)과 class를 붙이면 참조할 수 있습니다.

9 액티비티 매니저

10 시스템

11 finish

12 안드로이드 태스크, 스택

 

3_2.1인텐트

1 시스템으로 전달되는 명령을 담고 있는 객체

2 플래그

3 FLAG_ACTIVITY_SINGLE_TOP

4 onCreate, 이 메서드는 액티비티가 메모리에 처음 만들어질 때 자동으로 호출되는데 화면에 이미 만들어져 있으니 호출되지 않는다. 

5 onNewIntent, 이 메서드가 별로로 호출되는 이유는 인텐트를 전달받기 위해서이다. 

6 getIntent, onNewIntent

 

3_2.2 부가데이터

  1. 인텐트에 추가할 수 있는 옵션
  2. addFlags
  3. 동일한 액티비티가 이미 메모리에 만들어져 있다면 추가로 만들지 않고 그 액티비티를 띄워주는 역할
  4. 액티비티를 관리하는 태스크(TASK) 객체를 새로 만들도록 함, 브로드캐스트 수신자나 서비스는 화면이 없기 때문에 새로운 화면을 띄워주려면 먼저 태스크에서 객체가 만들어져야 한다. 
  5. 원하는 액티비티, 없애주는
  6. 번들 
  7. 인텐트에 넣을 수 있는 부가데이터의 자료형은 기본 자료형( Boolean, Integer, Float 등)이므로 여러 개의 속성이 들어 있는 객체의 정보를 전달하고 싶을 때 Serializable 객체를 사용한다. 
  8. Parcelable 객체

 

3_3 생명주기 이해하기

  1. 메모리
  2. 메서드
  3. (위->아래) onStart(), onResume(), onResume(), onRestart(), onStop()
  4. 사용자가 입력했던 데이터와 상태 정보를 복구할 수 있도록 만들기 위해서
  5. onPause, onResume
반응형


댓글