diff --git a/src/main/scala/com/github/shadowsocks/ShadowsocksRunnerService.scala b/src/main/scala/com/github/shadowsocks/ShadowsocksRunnerService.scala index 9af9c182..b9cadb2b 100644 --- a/src/main/scala/com/github/shadowsocks/ShadowsocksRunnerService.scala +++ b/src/main/scala/com/github/shadowsocks/ShadowsocksRunnerService.scala @@ -55,14 +55,17 @@ class ShadowsocksRunnerService extends Service with ServiceBoundContext { override def onServiceConnected() { handler.postDelayed(() => if (bgService != null) { - if (app.isNatEnabled || VpnService.prepare(ShadowsocksRunnerService.this) == null) { - bgService.use(app.profileId) - bgService.getState // ensure the oneway call to use is finished - } + if (app.isNatEnabled) startBackgroundService() + else if (VpnService.prepare(ShadowsocksRunnerService.this) == null) startBackgroundService() stopSelf() }, 1000) } + def startBackgroundService() = { + bgService.use(app.profileId) + bgService.getState // ensure the oneway call to use is finished + } + override def onCreate() { super.onCreate() attachService()