From 4869f01b3827b93cf20a554b4ab0fada5a1da790 Mon Sep 17 00:00:00 2001 From: yqx1110 Date: Thu, 21 Aug 2025 12:24:29 +0800 Subject: [PATCH] fix broadcast receiver not registered when application started with no ui, e.g. from settings tile or external control --- app/src/main/java/com/github/kr328/clash/remote/Broadcasts.kt | 2 ++ app/src/main/java/com/github/kr328/clash/remote/Remote.kt | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/github/kr328/clash/remote/Broadcasts.kt b/app/src/main/java/com/github/kr328/clash/remote/Broadcasts.kt index 9be7026bf5..184599a2db 100644 --- a/app/src/main/java/com/github/kr328/clash/remote/Broadcasts.kt +++ b/app/src/main/java/com/github/kr328/clash/remote/Broadcasts.kt @@ -100,6 +100,7 @@ class Broadcasts(private val context: Application) { }) clashRunning = StatusClient(context).currentProfile() != null + registered = true } catch (e: Exception) { Log.w("Register global receiver: $e", e) } @@ -113,6 +114,7 @@ class Broadcasts(private val context: Application) { context.unregisterReceiver(broadcastReceiver) clashRunning = false + registered = false } catch (e: Exception) { Log.w("Unregister global receiver: $e", e) } diff --git a/app/src/main/java/com/github/kr328/clash/remote/Remote.kt b/app/src/main/java/com/github/kr328/clash/remote/Remote.kt index d8b249d1b8..5bd35029f1 100644 --- a/app/src/main/java/com/github/kr328/clash/remote/Remote.kt +++ b/app/src/main/java/com/github/kr328/clash/remote/Remote.kt @@ -30,16 +30,16 @@ object Remote { fun launch() { ApplicationObserver.attach(Global.application) + broadcasts.register() + ApplicationObserver.onVisibleChanged { if(it) { Log.d("App becomes visible") service.bind() - broadcasts.register() } else { Log.d("App becomes invisible") service.unbind() - broadcasts.unregister() } }