번역기와 챗지피티를 보고 공부한 것입니다. 틀린 것이 있다면 댓글 달아주세요.
- Application 클래스는 액티비티 및 서비스와 같은 다른 모든 구성 요소를 포함하는 Android 앱 내의 기본 클래스 입니다.
- Application 클래스 또는 Application 클래스의 하위 클래스는 애플리케이션/패키지에 대한 프로세스가 생성될 때 다른 클래스보다 먼저 인스턴스화됩니다.
- 이 클래스는 첫번째 액티비티가 표시되기 전에 전역 상태를 초기화하는데 주로 사용됩니다.
- 언제 사용해야 하는가?
- 첫번째 액티비티를 생성하기 전에 실행해야하는 특수 작업
- 모든 구성요소(충돌 보고,지속성)에서 공유해야 하는 전역 초기화
- 공유 네트워크 클라이언트 객체와 같은 static immutable data(정적불변데이터)에 쉽게 엑세스하기 위한 static method
- 변경 가능한 공유 데이터는 언제든지 사라지거나 유효하지 않게 될 수 있으므로Application 객체 내에 저장해서는 안된다.
- 대신, 파일, SharedPreferences또는 SQLite와 같은 지속성 전략을 사용하여 변경 가능한 공유 데이터를 저장하세요.
- 앱 내 여러 위치에는 항상 필요한 데이터와 정보가 있다.
- 이는 세션 토큰, 값비싼 계산의 결과등일 수 있습니다.
- 액티비티 간에 객체를 전달하거나 객체를 영구저장소에 유지하는 오버헤드를 피하기 위해 애플리케이션 인스턴스를 사용하고 싶은 유혹이 있을 수 있습니다.
- 그러나 변경가능한 인스턴스 데이터를 Application 객체 내에 저장해서는 안된다.
- 데이터가 거기에 유지될 것이라고 가정하면 애플리케이션이 어느 시점에서 NullPointerException으로 인해 필연적으로 충돌하게 되기 때문입니다.
- Application 객체가 영원히 메모리에 남아있다는 보장은 없으며 종료됩니다.
- 사용자가 다시 앱을 열때 앱 전체가 처음부터 다시 시작되는 것이 아니라 기존 상태와 일부 정보가 유지됩니다.
- 안드로이드 시스템은 애플리케이션이 다시 시작될 때 새로운 Application 객체를 생성합니다.
- 사용자가 앱을 종료후 다시 열면 시스템은 사용자가 이전에 어떤 액티비티에 있었는지를 추적하고 해당 액티비티로 부터 시작하여 애플리케이션을 재개한다.
- store data를 이렇게 저장해야한다.
- 액티비티에게 데이터 전달할 때 : intent
- shared preferences
- Local Files
- SQLite Database
- ORM
'android' 카테고리의 다른 글
8. Android WebView 공식문서 공부 (0) | 2023.11.04 |
---|---|
6. WebSettings 안드로이드 공식문서 공부 (0) | 2023.09.23 |
4. (android) WebViewClient 공식문서 공부 (0) | 2023.09.17 |
3. (android) WebView, WebChromeClient 공식문서 공부 (0) | 2023.09.16 |
Activity 공식 문서 공부 (0) | 2023.08.30 |