diff --git a/V2rayNG/app/src/main/java/xyz/zarazaex/olc/handler/V2RayServiceManager.kt b/V2rayNG/app/src/main/java/xyz/zarazaex/olc/handler/V2RayServiceManager.kt index 3c672c0d..9985cec0 100644 --- a/V2rayNG/app/src/main/java/xyz/zarazaex/olc/handler/V2RayServiceManager.kt +++ b/V2rayNG/app/src/main/java/xyz/zarazaex/olc/handler/V2RayServiceManager.kt @@ -96,6 +96,11 @@ object V2RayServiceManager { } try { + if (serviceControl?.get() == null) { + Log.w(AppConfig.TAG, "StartCore-Manager: Service not running, resetting UI state") + MessageUtil.sendMsg2UI(context, AppConfig.MSG_STATE_STOP_SUCCESS, "") + return + } MessageUtil.sendMsg2Service(context, AppConfig.MSG_STATE_STOP, "") } finally { synchronized(operationLock) { diff --git a/V2rayNG/app/src/main/java/xyz/zarazaex/olc/service/V2RayVpnService.kt b/V2rayNG/app/src/main/java/xyz/zarazaex/olc/service/V2RayVpnService.kt index e0f12761..fef8a87b 100644 --- a/V2rayNG/app/src/main/java/xyz/zarazaex/olc/service/V2RayVpnService.kt +++ b/V2rayNG/app/src/main/java/xyz/zarazaex/olc/service/V2RayVpnService.kt @@ -25,6 +25,7 @@ import xyz.zarazaex.olc.handler.MmkvManager import xyz.zarazaex.olc.handler.NotificationManager import xyz.zarazaex.olc.handler.SettingsManager import xyz.zarazaex.olc.handler.V2RayServiceManager +import xyz.zarazaex.olc.util.MessageUtil import xyz.zarazaex.olc.util.MyContextWrapper import xyz.zarazaex.olc.util.Utils import java.lang.ref.SoftReference @@ -94,6 +95,7 @@ class V2RayVpnService : VpnService(), ServiceControl { super.onDestroy() Log.i(AppConfig.TAG, "StartCore-VPN: Service destroyed") NotificationManager.cancelNotification() + MessageUtil.sendMsg2UI(this, AppConfig.MSG_STATE_STOP_SUCCESS, "") } override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {