diff --git a/app/src/main/java/io/nekohasekai/sagernet/bg/proto/ProxyInstance.kt b/app/src/main/java/io/nekohasekai/sagernet/bg/proto/ProxyInstance.kt index 3865386..23fd25e 100644 --- a/app/src/main/java/io/nekohasekai/sagernet/bg/proto/ProxyInstance.kt +++ b/app/src/main/java/io/nekohasekai/sagernet/bg/proto/ProxyInstance.kt @@ -44,7 +44,7 @@ class ProxyInstance(profile: ProxyEntity, var service: BaseService.Interface? = override fun launch() { box.setAsMain() - super.launch() + super.launch() // start box runOnDefaultDispatcher { looper = service?.let { TrafficLooper(it.data, this) } looper?.start() diff --git a/app/src/main/java/io/nekohasekai/sagernet/bg/proto/TrafficLooper.kt b/app/src/main/java/io/nekohasekai/sagernet/bg/proto/TrafficLooper.kt index 362e805..36cc04c 100644 --- a/app/src/main/java/io/nekohasekai/sagernet/bg/proto/TrafficLooper.kt +++ b/app/src/main/java/io/nekohasekai/sagernet/bg/proto/TrafficLooper.kt @@ -93,8 +93,11 @@ class TrafficLooper val itemBypass = TrafficUpdater.TrafficLooperData(tag = TAG_BYPASS) while (sc.isActive) { - delay(delayMs) - proxy = data.proxy ?: continue + proxy = data.proxy + if (proxy == null) { + delay(delayMs) + continue + } if (trafficUpdater == null) { if (!proxy.isInitialized()) continue @@ -175,6 +178,8 @@ class TrafficLooper data.notification?.apply { if (listenPostSpeed) postNotificationSpeedUpdate(speed) } + + delay(delayMs) } } } \ No newline at end of file