Kakao i Connect Live 커뮤니티

채널 연결 해제시 에러 발생 이슈

특정 액티비티에서 채널 개설, 연결 후 연결 종료시 액티비티를 종료하는 방식으로 구현되어있습니다.

액티비티가 종료될 때 아래와 같은 에러로그가 발생하고 있습니다.
remon 인스턴스가 제대로 close 되지않아 생기는 문제라고 생각되는데
아래의 에러가 발생하지 않기위해서 따로 처리해야하는 부분이 있을까요?

xxxxxxActivity has leaked IntentReceiver org.webrtc.NetworkMonitorAutoDetect@ed1b7e that was originally registered here. Are you missing a call to unregisterReceiver()?
at android.app.LoadedApk$ReceiverDispatcher.(LoadedApk.java:1030)
at android.app.LoadedApk.getReceiverDispatcher(LoadedApk.java:817)
at android.app.ContextImpl.registerReceiverInternal(ContextImpl.java:1256)
at android.app.ContextImpl.registerReceiver(ContextImpl.java:1236)
at android.app.ContextImpl.registerReceiver(ContextImpl.java:1230)
at android.content.ContextWrapper.registerReceiver(ContextWrapper.java:576)
at org.webrtc.NetworkMonitorAutoDetect.registerReceiver(NetworkMonitorAutoDetect.java:627)
at org.webrtc.NetworkMonitorAutoDetect.(NetworkMonitorAutoDetect.java:546)
at org.webrtc.NetworkMonitor.createAutoDetector(NetworkMonitor.java:145)
at org.webrtc.NetworkMonitor.startMonitoring(NetworkMonitor.java:90)

activity종료전에 remon.close하고서 onClose 콜백이 발생하면 그때 activity종료를 하면 어떨지요?

답변 감사합니다.
말씀하신 구조로 변경하였고, 연결 해제시 정상작동을 확인하였습니다.
하지만 채널에 연결되어있는 도중 앱 강제종료시 동일한 에러와 네이티브 에러는 아직도 발생하고 있습니다.
앱 강제종료시 강제 종료한 측에서 아래와 같이 크래시가 발생하고, 앱이 재실행되고나서야 onClose()와 onStateChange()에서의 close가 호출됩니다.
이 부분의 크래시를 방지하기위해 try/catch등 클라이언트단에서 추가적으로 해야할 작업이 있을까요?
감사합니다.

08-14 19:32:51.832 20708-21162/com.xxxxxx.xxxxxx E/rtc: #
# Fatal error in …/…/…/webrtc/sdk/android/src/jni/androidnetworkmonitor_jni.cc, line 219
# last system error: 0
# Check failed: !jni()->ExceptionCheck()
# Error during NetworkMonitor.stopMonitoring
#
08-14 19:32:52.032 21225-21225/? A/google-breakpad: Microdump skipped (uninteresting)
08-14 19:32:52.062 20708-21162/com.xxxxxx.xxxxxx A/libc: Fatal signal 6 (SIGABRT), code -6 in tid 21162 (network_thread )
08-14 19:32:52.122 18609-18609/? A/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
08-14 19:32:52.122 18609-18609/? A/DEBUG: Build fingerprint: 'samsung/a5ulteskt/a5ulteskt:6.0.1/MMB29M/A500SKSU1CQB1:user/release-keys’
08-14 19:32:52.122 18609-18609/? A/DEBUG: Revision: '2’
08-14 19:32:52.122 18609-18609/? A/DEBUG: ABI: 'arm’
08-14 19:32:52.122 18609-18609/? A/DEBUG: pid: 20708, tid: 21162, name: network_thread >>> com.xxxxxx.xxxxxx <<<
08-14 19:32:52.122 18609-18609/? A/DEBUG: signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------

두 가지 방법이 있을 듯합니다.
첫 번째는, onDestroy에서 flag 처리로 remon의 상태를 보고 종료를 하면 될듯합니다.(remon이 살아있을 시->종료 콜백 확인 후 finish)

두 번째는 finish 후에 onDestroy에서 system.exit(0)으로 마무리를 지어주시는 것도 방법일 듯합니다.