diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/flow/gps/GpsImpl.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/flow/gps/GpsImpl.kt index 01b5a2ff9f..43c94c86b5 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/flow/gps/GpsImpl.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/flow/gps/GpsImpl.kt @@ -49,9 +49,19 @@ internal class GpsImpl(ctx: Context): IFlow(ctx) { false } + private val onStateListener = object : IAppStateListener { + + override fun onAppStateChanged(isForeground: Boolean) { + if (isForeground) { + send(isLocationEnabled(), isGrandFineLocation()) + } + } + } + override fun onCreate() { val isGranted = isGrandFineLocation() + AppStateManager.registerAppStateListener(onStateListener) send(isLocationEnabled(), isGranted) if (!isGranted) { PermissionUtils.requestAccessFineLocation(object : SimpleCallback { @@ -88,6 +98,7 @@ internal class GpsImpl(ctx: Context): IFlow(ctx) { } catch (t: Throwable) { t.printStackTrace() } + AppStateManager.unRegisterAppStateListener(onStateListener) } } \ No newline at end of file