Developer Geek

Android Push 알림 + Background vs Foreground in Kotlin 본문

안드로이드/Service

Android Push 알림 + Background vs Foreground in Kotlin

devGeek 2022. 6. 18. 09:00
반응형

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상태 값을 구분하여 로직을 처리할 수 있다.

 

 

Android Application Class란 in Kotlin

Application Class란 전역적으로 앱의 상태를 유지하기 위한 기본 클래스이다. 우리는 Application을 상속받아 우리만의 ex). MApplication 을 구현할 수 있다. 단, 사용하기 위해서는 AndroidManifest.xml 의 태..

devgeek.tistory.com

 

Android FCM and Message Types

Android FCM 프로젝트 셋팅 Android FCM 기본 예제 Android FCM 클릭 이벤트 들어가며 Android App 개발 프로젝트를 진행하는 중, Notification 개발을 맡았다. 앱이 Foreground 일 때는 내가 원하대로 Notificati..

devgeek.tistory.com

 

안드로이드 FCM 예제 - Part1 (Firebase 프로젝트 만들기, 앱 등록)

안드로이드 FCM 예제 - Part1 (Firebase 프로젝트 만들기, 앱 등록) Firebase 프로젝트 만들기 FCM(Firebase Cloud Messaging)을 사용하기 위해서는 Firebase 프로젝트를 만들고 앱을 등록해야 한다. 1.Firebase C..

devgeek.tistory.com

 

안드로이드 FCM 예제 - Part2 (앱 매니페스트 수정, FCM Token 등록, Notification 송수신)

앱 매니페스트 수정 포그라운드 앱의 알림 수신, 데이터 페이로드 수신, 업스트림 메시지 전송 등을 수행하기 위해서 서비스를 확장한다. FirebaseMessagingServiceUtil.kt package com.example.myfcmexample impo..

devgeek.tistory.com

 

질문과 잘못된 점에 대해 말씀해주시는 건 언제나 환영입니다.
zero5.two4@gmail.com

반응형
Comments