- 새로운 프로젝트 ViewTest1 생성
- 화면이 바뀐다는 말은 activity가 전환된다는 말입니다.
- 화면을 이동한다는 말은 기존의 activity에 새로운 activity를 덮어서 화면을 전환시킵니다.
- 위 그림처럼 다시 메인으로 돌아오면 총 activity가 3개가 쌓여있는 상태인 것입니다.
- 화면에 떠있는 activity에서 빠져나오면 activity가 지워지고 쌓여있던 activity로 전환되는 것입니다.
- 저장해놓고 쓰는 방법(어딘가에 기록해놓고 꺼내쓰는 방법
- 1. static에 저장
- 2. file에 저장
- 3. 내부 데이터베이스에 저장
- 4. 웹 서버에 저장
- 5. 클라우드 웹 서버에 저장
- 저장하지 않는 방법
- 화면에서 화면으로 이동될 때 Data를 들고 가서 Direct로 전달
- 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를 찍어줍니다.
- 안드로이드 생명주기에 속하는 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으로 쌓을지, 날려버릴지 정할 수 있음