오늘은 안드로이드 프로젝트에 앞서서..
안드로이드 생명주기에 대해서 이해하는 시간을 먼저 가졌다.
가장 중요한!
부분 중 하나이므로, 확실하게 잡고 가는게 좋다는 말에 열심히 공부를 했다.
그리고 가장 좋은 것은 공식문서!
즐겨찾기 해놓고 자주 들여다봐야 한다
이제 설명 들은 부분을 줄글로 정리하기
액티비티 & 프레그먼트
app 실행 순서 예시
1.메인액티비티 2. 로그인 화면으로 이동
이때 메인 액티비티 라이프 사이클이 중요하다!
액티비티시작
> onCreate() = api나 사용자정보 등 세팅을 불러오는 단계
> onStart() 화면 불러왔음, 액션 없음 > onResume 실시간으로 액션이 나오는 상태 (중요!)
ex. 버튼을 누르면 이동한다 이런 액션들이 여기서 처리
: 즉 우리가 화면을 이동하면 화면이 쌓인다고 보면 되고 (그 위를 덮는다)
이전 단계는 그때 잠깐 정지 onpause 상태에 있는다
> 그리고 뒤로 가기를 누르면 onResume()으로 다시 돌아가서 실행
: 즉 화면 초기화 x 값이 달라지지 않는다
= 즉 로그인이 되어있는 상태로 계속 유지되어 있는 것이다. (data 초기화 되지 않음)
이게 왜 중요한가?
ex. 송금 신청 > 메인화면으로 돌아가고 > 메인화면에는 송금신청중 아이콘이 뜨게끔 되어 있다
> 근데 얘가 인식을 못한다?
= onCreate()시점에 송금신청이 있기 때문에 갱신처리가 되지 않아서 (화면이 초기화되지 않아서) !
즉 갱신처리를 onResume() 에 넣어야한다.
액티비티 위에 다른 액티비티가 쌓이면 onpause() > onStop()상태가되고 참조 불가능!
액티비티 위에 다른 프레그먼트가 쌓이면 onPause() 상태로, 참조가 가능하다
프레그먼트가 필요한 이유?
화면이 덮히는 것이므로 만약 액티비티로만 쌓으면 네비게이션도 페이지마다 또 쌓고... 충돌이 날수도 있음
프레그먼트를 쓴다면?
액티비티의 자식이므로 그 안의 요소(변수)를 다 사용할 수도 있음! (종속관계)
데이터 이동 등이 매우 간편함
즉 프레그먼트 안에 정보를 적어서 그걸 액티비티에 임시저장한다면 화면전환을 하면서
자동 저장처리한 것처럼 처리할 수 있음
이때, 안드로이드의 경우 코드 200줄을 안넘는게 좋다!
앱최적화에 적합한 코드(클린코드)
즉 액티비티 하나에 프레그먼트를 다 쌓으면 코드가 200줄은 가볍게 넘으므로, 액티비티를 주제별로 분리하고 그 위에 맞는 프레그먼트를 올리는 것이다.
그외)
다이얼로그 : 투명한 액티비티이므로 onPause()
바텀시트 : 불투명한 액티비티 따라서 onStop()
요 부분을 유의해서 잘 사용하자.
'[Dev] 🎯Self Study' 카테고리의 다른 글
[알고리즘 파이썬] 스트링 알고리즘 (0) | 2023.05.12 |
---|---|
[알고리즘 파이썬] 3일차 (0) | 2023.05.11 |
[NEXT.js] 일단 시작하기 with TypeScript (0) | 2023.04.02 |
[ADsP] 비전공자 10일 '1트' 합격 후기 & 꿀팁 - 민트책, 인강 추천 (0) | 2023.03.30 |
[AWS] REACT 배포기 with Nginx (그리고 500 server error) (0) | 2023.03.05 |