일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 영어공부
- Android 12
- OkHttp Interceptor
- 프로그래머스 알고리즘
- 66챌린지
- MVP Architecture
- Android Jetpack
- 안드로이드
- Android ProgressBar
- 영어독립365
- WebView
- Android WebView
- Android
- DataBinding
- Android Navigation
- 카카오 알고리즘
- 습관만들기
- android recyclerview
- 안드로이드 카카오 로그인
- 알고리즘 자바
- Kotlin
- Android DataBinding
- scope function
- 안드로이드 fcm
- 안드로이드 갤러리 접근
- Android ViewPager2
- Android Interceptor
- Kotlin FCM
- Java
- Android 12 대응
- Today
- Total
Developer Geek
Android Application Class란 in Kotlin 본문
Application Class란
전역적으로 앱의 상태를 유지하기 위한 기본 클래스이다.
우리는 Application을 상속받아 우리만의 ex). MApplication
을 구현할 수 있다. 단, 사용하기 위해서는 AndroidManifest.xml
의 태그의 속성인 “android:name”의 값을 우리가 지정한 클래스 이름(MApplication
)으로 추가해야한다. 마지막으로 Application() 클래스는 다른 클래스들보다 가장 먼저 생성된다.
Application Class는 가장 먼저 객체화 된다!!
이러한 특징에 전역적으로 사용할 수 있어서 Application()을 상속받아 나만의 객체를 많들면 다양하게 활용할 수 있는 것 같다.
가장 대표적으로는 첫 번째 Activity를 만들기 전에 실행해야 하는 특수 작업이 될 수 있다.
다음에는 Kotlin으로 Application을 활용한 예제를 정리한 내용이다.
Background vs Foreground 실행(Push 알림, Background vs Foreground)
Push 알림을 구현하게 되면, Background 상태에서의 액션과 Foreground 상태에서의 액션을 구분해야할 때가 있다.
예를 들어 Foreground 상태에서는 앱의 특정 Activity를 실행시킬 수 있지만, Background 상태에서는 Splash 화면을 보여준 이후에 특정 Activity로 이동하도록 구현해야할 수도 있다. 이때 앱의 상태값을 확인하여 분기처리 할 수 있는데, Application 클래스를 상속받는 클래스를 통해 상태값을 관리할 수 있다.
MyApplication.kt: Application, Livecycleobser 상속
Application 상속
: Application Class 사용을 위해 상속 받아 구현한다.LifecycleObserver 상속
: 앱의 상태 값(Foreground/Background
)을 관리하기 위해 상속 받아 구현한다.
class MyApplication : Application(), LifecycleObserver {
override fun onCreate() {
super.onCreate()
ProcessLifecycleOwner.get().lifecycle.addObserver(this)
}
@OnLifecycleEvent(Lifecycle.Event.ON_STOP)
fun onAppBackgrounded() { isForeground = false }
@OnLifecycleEvent(Lifecycle.Event.ON_START)
fun onAppForegrounded() { isForeground = true}
companion object {
var isForeground = false
}
}
ProcessLifecycleOwner.get().lifecycle.addObserver(this)
를 통해 앱의 생명주기 옵저빙을 추가한다.
그리고 isForeground
변수를 통해 앱의 Foreground/Background
상태 값을 구분하여 로직을 처리할 수 있다.
참고 블로그
질문과 잘못된 점에 대해 말씀해주시는 건 언제나 환영입니다.
zero5.two4@gmail.com
'안드로이드' 카테고리의 다른 글
Android Unit Testing 기본 구현 in Kotlin (0) | 2022.06.23 |
---|---|
Android Unit Test란 (0) | 2022.06.21 |
Higher-Order Function(고차함수)란 in Kotlin (0) | 2022.06.14 |
EditText 키보드 엔터 키보드 내리기 In Kotlin (0) | 2022.03.18 |
Android Action Bar 숨기기 in Kotlin (0) | 2022.03.03 |