티스토리 뷰
Mobile/Android
App이 Foreground에서 올라왔는지 체크하는 방법. with ActivityLifecycleCallbacks이용하기
out of coding 2019. 8. 20. 21:50우리가 앱을 만들때 백그라운드에 내렸다가 올라왔을때만 체크해서 개발을 하여야 할 경우가 있습니다.
예를 들면 버전체크 같은거죠.
이러한 경우를 체크하기 위해서 ActivityLifecycleCallbacks를 이용하여 보겠습니다.
최소 API는 14입니다.
이안에 func이 많이 존재하는데요 우리가 사용할 부분은 아주 조금입니다.
enum class AppStatus {
BACKGROUND, RETURN_TO_FOREGROUND, FOREGROUND
}
class AppLifecycle : Application.ActivityLifecycleCallbacks {
var appStatus = AppStatus.BACKGROUND
private var running = 0
override fun onActivityPaused(activity: Activity?) {
// Not Use
}
override fun onActivityResumed(activity: Activity?) {
// Not Use
}
override fun onActivityStarted(activity: Activity?) {
if (++running == 1) {
appStatus = AppStatus.RETURN_TO_FOREGROUND
} else if (running > 1) {
appStatus = AppStatus.FOREGROUND
}
}
override fun onActivityDestroyed(activity: Activity?) {
// Not Use
}
override fun onActivitySaveInstanceState(activity: Activity?, bundle: Bundle?) {
// Not Use
}
override fun onActivityStopped(activity: Activity?) {
if (--running == 0) {
appStatus = AppStatus.BACKGROUND
}
}
override fun onActivityCreated(p0: Activity?, p1: Bundle?) {
// Not Use
}
}
그리고 ApplicationClass에 등록하여 줍니다.
override fun onCreate() {
super.onCreate()
val lifeCycle = AppLifecycle()
registerActivityLifecycleCallbacks(lifeCycle)
}
Activity에 하나씩 코드를 넣어서 처리하여야 할 부분들을 하나의 callback에서 받아서 처리가 가능합니다.
'Mobile > Android' 카테고리의 다른 글
Android11 이상부터? 무선 디버깅으로 Adb 연결하고 명령하기 (2) | 2022.01.08 |
---|---|
AndroidStudio Error. Unsupported Modules Detected: Compilation is not supported for following modules (0) | 2020.03.28 |
Android. 기본 제공하는 공유하기 사용하기 (0) | 2019.08.05 |
Android. onTouch의 return에 대해서 (0) | 2019.08.05 |
Android. TransactionTooLargeException 해결하기 (0) | 2019.07.31 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- SWIFT
- Windows
- docker
- Spring
- ios
- php
- Kotlin
- MySQL
- windows10
- enum
- war
- Python
- Codable
- rxswift
- Xcode
- golang
- git
- intellij
- CentOS
- Linux
- cocoapods
- Gradle
- centos8
- nodejs
- android
- go
- ubuntu
- Java
- github
- tomcat
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함