07-30 Intent, Android 생명주기

Ruinak·2021년 7월 30일
0

Android Lesson

목록 보기
16/26
post-thumbnail

Material Design

New 프로젝트 생성

  • 새로운 프로젝트 ViewTest1 생성

화면전환 원리

  • 화면이 바뀐다는 말은 activity가 전환된다는 말입니다.
  • 화면을 이동한다는 말은 기존의 activity에 새로운 activity를 덮어서 화면을 전환시킵니다.
  • 위 그림처럼 다시 메인으로 돌아오면 총 activity가 3개가 쌓여있는 상태인 것입니다.
  • 화면에 떠있는 activity에서 빠져나오면 activity가 지워지고 쌓여있던 activity로 전환되는 것입니다.

데이터를 저장하는 방법의 종류

  • 저장해놓고 쓰는 방법(어딘가에 기록해놓고 꺼내쓰는 방법
    - 1. static에 저장
    - 2. file에 저장
    - 3. 내부 데이터베이스에 저장
    - 4. 웹 서버에 저장
    - 5. 클라우드 웹 서버에 저장
  • 저장하지 않는 방법
    - 화면에서 화면으로 이동될 때 Data를 들고 가서 Direct로 전달

static에 저장하는 방법(Intent)

  • Java 폴더에서 우클릭 → New → Activity → Empty Activity 선택합니다.
  • 새로운 Empty Activity인 SubActivity 생성합니다.
  • res → layout에 자동으로 activity_sub.xml이 생성된 것을 확인할 수 있습니다.
  • activity 태그는 안드로이드 실행시 첫 화면에 출력될 activity를 설정할 수 있습니다.
  • 첫 화면을 Main으로 지정해줍니다.
  • activity 화면을 디자인해줍니다.
  • mContext는 내 정보이고, SubActivity.class는 상대방의 정보입니다.
  • Intent를 트럭이라고 생각하면 됩니다.
  • 트럭은 원래 내 정보를 가지고 가는 녀석입니다.
  • startActivity에 intent를 담으면 내 정보를 다른 activity로 이동시킬 수 있습니다.
  • activity_main에 전화걸기 버튼을 추가합니다.
  • btnTel을 추가해주고 DIAL화면으로 이동할 수 있게 코드를 짭니다.
  • 전화걸기 버튼을 누르면 위와같은 화면으로 이동합니다.
  • 새로운 클래스인 MyData를 만들어줍니다.
  • static으로 data를 만들어줍니다.
  • MainActivity에서 data = 딸기를 등록하고 Log를 찍어줍니다.
  • SubActivity에서 Log를 찍어줍니다.

Android Life Cycle

  • 안드로이드 생명주기에 속하는 onResume, onPause, onDestroy를 추가해 줍니다.
  • 확인해보기 위해서 logd를 찍어주고 onCreate에도 logd를 찍어줍니다.
  • 앱이 처음 실행될때는 onCreate와 onResume이 작동합니다.
  • 그림이 언제 그려지는지 확인하기 위해서 onResume에 Thread.sleep을 걸어줍니다.
  • onResume이 작동해야 그림이 그려짐을 확인할 수 있습니다.
  • 사각형 버튼을 누르면(목록으로 나가면) onPause가 작동합니다.
  • 작동하는 앱을 제거하면 onDestroy가 작동합니다.
  • 앱을 실행시킨 후 다른 앱을 실행했다가 다시 돌아가봅니다.
  • onResume이 실행되면서 그림이 다시 그려짐을 확인할 수 있습니다.
  • 데이터를 넘기는 방법으로 파일에 저장입니다.(?)
  • Shared가 붙은 이유는 다른 앱에도 공유가 된다는 의미입니다.
  • SubActivity에서 Intent를 받습니다.
  • 수박으로 변환되서 받아지는걸 확인할 수 있습니다.
  • User 클래스를 만들고 빈생성자, 풀생성자, Getter, Setter를 등록해줍니다.
  • Alt + Insert를 누르면 Geneate가 뜹니다.
  • MainActivity에 intent로 User를 담아줍니다.
  • SubActivity에서 User를 다운캐스팅해서 등록해줍니다.
  • log를 찍어보면 user를 잘 받아오는 것을 확인할 수 있습니다.
  • 화면이 전환될 때 Flags를 사용하면 화면이 전환될 때 기존 화면을 stack으로 쌓을지, 날려버릴지 정할 수 있음
profile
Nil Desperandum <절대 절망하지 마라>

0개의 댓글