투케이2K

400. (kotlin/코틀린) BroadcastReceiver 브로드 캐스트 이벤트 알림 전달 및 receive 알림 수신 코드 정리 본문

Kotlin

400. (kotlin/코틀린) BroadcastReceiver 브로드 캐스트 이벤트 알림 전달 및 receive 알림 수신 코드 정리

투케이2K 2023. 8. 24. 20:15
반응형

[개발 환경 설정]

개발 툴 : AndroidStudio

개발 언어 : Kotlin

 

[소스 코드]

 

    // ------------------------------------------------------------------------------------------
    // [브로드 캐스트 이벤트 알림 전달]
    // ------------------------------------------------------------------------------------------
        fun CALL_BROAD_CAST_SEND(mContext: Context) {
            // ===============================================================
            S_Log._D_("브로드캐스팅 이벤트 알림 전달", null)
            // ===============================================================


            // [로직 처리 실시]
            try {

                val intent = Intent(S_FinalData.BROAD_CAST_SEND) // [채널 명칭 지정]
                intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION)
                LocalBroadcastManager.getInstance(mContext).sendBroadcast(intent) // [브로드 캐스트 알림 전달]

            }
            catch (e: Exception) {
                e.printStackTrace()
            }
        }





    // ------------------------------------------------------------------------------------------
    // [브로드 캐스트 채널 등록]
    // ------------------------------------------------------------------------------------------
    val filter = IntentFilter() // [인텐트 필터 선언]
    filter.addAction(S_FinalData.BROAD_CAST_SEND) // [구독할 채널]
    LocalBroadcastManager.getInstance(MainActivity@this).registerReceiver(mMessageReceiver, filter) // [알림을 받는 리시버 지정]





    // ------------------------------------------------------------------------------------------
    // TODO [브로드캐스트 알림 수신]
    // ------------------------------------------------------------------------------------------
    private var mMessageReceiver: BroadcastReceiver = object : BroadcastReceiver() {
        override fun onReceive(context: Context, intent: Intent) {
            S_Log.w("//===========//","================================================")
            S_Log.i("","\n"+"["+ACTIVITY_NAME+" >> onReceive() :: 실시간 브로드 캐스트 알림 전달 받음]")
            S_Log.w("//===========//","================================================")

            // ------------------------------------------
            // [BROAD_CAST_CHANNER : 특정 채널 알림 수신 로직 처리]
            // ------------------------------------------
            if (S_FinalData.BROAD_CAST_SEND.equals(intent.action.toString())) {
              
            }

        }

    }




    // -----------------------------------------------------------------------------------------
    // TODO [액티비티 onDestroy]
    // -----------------------------------------------------------------------------------------
    override fun onDestroy() {
        super.onDestroy()
        // ===============================================================
        S_Log._E_("액티비티 종료 상태", null)
        // ===============================================================

        // -----------------------------------------
        // [SEARCH FAST] : [BroadCast] : 브로드캐스트 채널 해제
        // -----------------------------------------
        try {
            LocalBroadcastManager.getInstance(MainActivity@this).unregisterReceiver(mMessageReceiver)
        } catch (e: Exception) {
            e.printStackTrace()
        }
    }

 

반응형
Comments