@@ -3,12 +3,18 @@ package com.segment.analytics.kotlin.android
33import android.content.Context
44import android.content.Intent
55import android.util.Log
6+ import androidx.lifecycle.DefaultLifecycleObserver
7+ import androidx.lifecycle.LifecycleOwner
8+ import androidx.lifecycle.ProcessLifecycleOwner
69import com.segment.analytics.kotlin.android.plugins.AndroidContextPlugin
710import com.segment.analytics.kotlin.android.plugins.AndroidLifecyclePlugin
811import com.segment.analytics.kotlin.android.utilities.DeepLinkUtils
912import com.segment.analytics.kotlin.core.Analytics
1013import com.segment.analytics.kotlin.core.Configuration
14+ import com.segment.analytics.kotlin.core.checkSettings
1115import com.segment.analytics.kotlin.core.platform.plugins.logger.*
16+ import kotlinx.coroutines.Dispatchers
17+ import kotlinx.coroutines.launch
1218
1319// A set of functions tailored to the Android implementation of analytics
1420
@@ -67,6 +73,25 @@ public fun Analytics(
6773private fun Analytics.startup () {
6874 add(AndroidContextPlugin ())
6975 add(AndroidLifecyclePlugin ())
76+ registerLifecycle()
77+ }
78+
79+ private fun Analytics.registerLifecycle () {
80+ analyticsScope.launch(Dispatchers .Main ) {
81+ ProcessLifecycleOwner .get().lifecycle.addObserver(object : DefaultLifecycleObserver {
82+ var lastCheckSettings = java.lang.System .currentTimeMillis()
83+ val CHECK_SETTINGS_INTERVAL = 10 * 1000L
84+
85+ override fun onStart (owner : LifecycleOwner ) {
86+ analyticsScope.launch(analyticsDispatcher) {
87+ if (java.lang.System .currentTimeMillis() - lastCheckSettings > CHECK_SETTINGS_INTERVAL ) {
88+ checkSettings()
89+ lastCheckSettings = java.lang.System .currentTimeMillis()
90+ }
91+ }
92+ }
93+ })
94+ }
7095}
7196
7297/* *
0 commit comments