티스토리 뷰
728x90
반응형
SMALL
컨텍스트(Context)와 앱의 상태는 안드로이드 앱 개발에서 핵심적인 개념 중 하나입니다. 이 글에서는 컨텍스트의 역할과 중요성, 그리고 안드로이드 앱의 생명 주기에 대해 자세하게 알아보겠습니다.
8.1 컨텍스트(Context)의 역할과 중요성
8.1.1 컨텍스트의 정의
컨텍스트는 안드로이드 앱에서 현재 실행 중인 상황과 관련된 정보를 제공하는 객체입니다. 이는 앱 자체의 정보, 리소스, 클래스들에 대한 접근 권한을 포함합니다.
8.1.2 컨텍스트의 역할
- 액티비티 및 서비스 시작: 앱 내에서 액티비티를 시작하거나 서비스를 시작하는 데 사용됩니다.
- 리소스 액세스: 앱의 리소스(레이아웃, 문자열, 이미지 등)에 접근할 때 사용됩니다.
- 앱의 정보 얻기: 앱의 패키지 이름, 버전 등의 정보에 접근할 수 있습니다.
8.1.3 컨텍스트의 종류
안드로이드에서는 여러 종류의 컨텍스트가 있으며, 각각의 역할과 사용 시기에 따라 다르게 사용됩니다.
- 애플리케이션 컨텍스트(Application Context): 앱의 전역적인 정보에 접근할 때 사용합니다.
- 액티비티 컨텍스트(Activity Context): 액티비티 내에서 사용되며, 액티비티가 소멸되면 함께 소멸합니다.
8.2 안드로이드 앱의 생명 주기(Lifecycle) 소개
8.2.1 생명 주기의 개념
안드로이드 앱은 다양한 상태를 거쳐가며 동작합니다. 이러한 상태들은 생명 주기로 표현되며, 앱의 상태 변화에 따라 특정 이벤트들이 발생합니다.
8.2.2 생명 주기의 주요 단계
- onCreate(): 액티비티가 처음 생성될 때 호출됩니다.
- onStart(): 액티비티가 사용자에게 표시되기 바로 전에 호출됩니다.
- onResume(): 액티비티가 포그라운드로 이동되어 사용자와 상호 작용 가능할 때 호출됩니다.
- onPause(): 다른 액티비티가 포그라운드로 나타나면서 현재 액티비티가 일부 가려질 때 호출됩니다.
- onStop(): 액티비티가 사용자에게 더 이상 표시되지 않을 때 호출됩니다.
- onDestroy(): 액티비티가 소멸될 때 호출됩니다.
8.2.3 생명 주기 콜백 메서드 사용 예시
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// onCreate()에서의 초기화 작업 수행
}
override fun onStart() {
super.onStart()
// onStart()에서의 작업 수행
}
override fun onResume() {
super.onResume()
// onResume()에서의 작업 수행
}
override fun onPause() {
super.onPause()
// onPause()에서의 작업 수행
}
override fun onStop() {
super.onStop()
// onStop()에서의 작업 수행
}
override fun onDestroy() {
super.onDestroy()
// onDestroy()에서의 작업 수행
}
}
8.3 컨텍스트와 생명 주기의 상호 작용
8.3.1 생명 주기 메서드 내에서 컨텍스트 사용
class MyService : Service() {
override fun onCreate() {
super.onCreate()
// 서비스가 생성될 때 애플리케이션 컨텍스트 사용 예시
val appContext: Context = applicationContext
}
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
// 서비스가 시작될 때 액티비티 컨텍스트 사용 예시
val activityContext: Context = this
return START_STICKY
}
// 생략...
}
8.4 전체 예시
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val appContext: Context = applicationContext
// onCreate()에서의 초기화 작업 수행
}
override fun onStart() {
super.onStart()
val activityContext: Context = this
// onStart()에서의 작업 수행
}
override fun onResume() {
super.onResume()
// onResume()에서의 작업 수행
}
override fun onPause() {
super.onPause()
// onPause()에서의 작업 수행
}
override fun onStop() {
super.onStop()
// onStop()에서의 작업 수행
}
override fun onDestroy() {
super.onDestroy()
// onDestroy()에서의 작업 수행
}
}
이 글에서 다뤘던 내용은 안드로이드 앱 개발에서 핵심적인 부분이며, 컨텍스트와 생명 주기의 이해는 안정적이고 효율적인 앱을 만드는 데에 중요한 역할을 합니다.
728x90
반응형
LIST
'안드로이드 걸음마' 카테고리의 다른 글
10. 더 나아가기: 개발 커뮤니티와 자료 활용 (0) | 2024.01.10 |
---|---|
9. 간단한 프로젝트로 실습하기 (0) | 2024.01.09 |
7. 안드로이드 매니페스트 파일 (0) | 2024.01.07 |
6. 컴포넌트의 상호 작용 이해하기 (2) | 2024.01.06 |
5. 레이아웃과 위젯 사용하기 (2) | 2024.01.05 |
반응형
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- kotlin
- 안드로이드 앱 개발
- UI스레드
- 내부데이터베이스
- coroutine
- 부동산
- 비동기
- RxJava
- 기초
- 비동기처리
- 안드로이드
- 안드로이드앱개발
- MVVM패턴
- 안드로이드개발
- fragment생명주기
- 앱개발
- cipher
- Android
- 디자인패턴
- RoomDatabase
- 코루틴
- Fragment
- 안드로이드기초
- 클린아키텍처
- 모듈화
- 사이버보안
- 코틀린
- 부동산 경매
- 생명주기
- 경매
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 |
글 보관함